ios开发 电子邮件的发送
在ios开发中,电子邮件的发送,看起来是很简单的
只要使用这个MFMailComposeViewControllerDelegate代理就好了
同时还有调用#import <MessageUI/MessageUI.h>这个库
演示一下吧
MailViewController.h
// // MailViewController.h // Mail // // Created by david on 13-8-2. // Copyright (c) 2013年 WalkerFree. All rights reserved. // #import <UIKit/UIKit.h> #import <MessageUI/MessageUI.h> @interface MailViewController : UIViewController<MFMailComposeViewControllerDelegate, UINavigationBarDelegate> - (IBAction)showMailPicker:(id)sender; @end
MailViewController.m
// // MailViewController.m // Mail // // Created by david on 13-8-2. // Copyright (c) 2013年 WalkerFree. All rights reserved. // #import "MailViewController.h" @interface MailViewController () @end @implementation MailViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)showMailPicker:(id)sender { if([MFMailComposeViewController canSendMail]){ [self displayMailComposerSheet]; }else{ NSLog(@"Device not configured to send SMS."); } } - (void)displayMailComposerSheet { MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; [picker setSubject:@"Hello from California!"]; // Set up recipients NSArray *toRecipients = [NSArray arrayWithObject:@"first@example.com"]; NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil]; NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@example.com"]; [picker setToRecipients:toRecipients]; [picker setCcRecipients:ccRecipients]; [picker setBccRecipients:bccRecipients]; // Attach an image to the email NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"jpg"]; NSData *myData = [NSData dataWithContentsOfFile:path]; [picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"rainy"]; // Fill out the email body text NSString *emailBody = @"It is raining in sunny California!"; [picker setMessageBody:emailBody isHTML:NO]; [self presentViewController:picker animated:YES completion:NULL]; } #pragma mark - delegate Methods - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error{ // Notifies users about errors associated with the interface switch (result) { case MFMailComposeResultCancelled: NSLog(@"Result: Mail sending canceled") ; break; case MFMailComposeResultSaved: NSLog(@"Result: Mail saved") ; break; case MFMailComposeResultSent: NSLog(@"Result: Mail sent") ; break; case MFMailComposeResultFailed: NSLog(@"Result: Mail sending failed") ; break; default: NSLog(@"Result: Mail not sent") ; break; } [self dismissViewControllerAnimated:YES completion:NULL]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } @end
运行一下就可以了。如果提示“Device not configured to send SMS.”
那么请在设置中打开邮件那个选项吧
版权声明
由 davidzhang创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于
博客(
https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/311
版权声明
由 davidzhang创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 Gowhich博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/311