ios发送邮件
方法一:
1.需要引入库MessageUI.framework
#import <MessageUI/MessageUI.h>
#import<MessageUI/MFMailComposeViewController.h>
2.@interface ViewController : UIXXXXXViewController <..., MFMailComposeViewControllerDelegate>
@end
3.发送执行代码。事先验证相关支持。
Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if (!mailClass) { UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"发送邮件" message:@"当前系统版本不支持应用内发送邮件功能,您可以使用mailto方法代替" delegate:self cancelButtonTitle:@"我知道啦" otherButtonTitles: nil] autorelease]; [alert show]; return; } if (![mailClass canSendMail]) { UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"发送邮件" message:@"用户没有设置邮件账户" delegate:self cancelButtonTitle:@"我知道啦" otherButtonTitles: nil] autorelease]; [alert show]; return; } MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; mc.mailComposeDelegate = self; [mc setSubject:@"Hello, World!"]; [mc setToRecipients:[NSArray arrayWithObject:@"[email protected]"]]; // [mc setCcRecipients:[NSArray arrayWithObject:@"[email protected]"]]; // [mc setBccRecipients:[NSArray arrayWithObject:@"[email protected]"]]; [mc setMessageBody:@"Hello,slick!!!\n\nCome here, I need you!" isHTML:NO]; // 添加一张图片 UIImage *addPic = [UIImage imageNamed: @"[email protected]"]; NSData *imageData = UIImagePNGRepresentation(addPic); // png [mc addAttachmentData: imageData mimeType: @"" fileName: @"Icon.png"]; //添加一个pdf附件 NSString *file = [self fullBundlePathFromRelativePath:@"高质量C++编程指南.pdf"]; NSData *pdf = [NSData dataWithContentsOfFile:file]; [mc addAttachmentData: pdf mimeType: @"" fileName: @"高质量C++编程指南.pdf"]; [self presentViewController:mc animated:YES completion:nil]; [mc release];
回调函数:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { switch (result) { case MFMailComposeResultCancelled: NSLog(@"Mail send canceled..."); break; case MFMailComposeResultSaved: NSLog(@"Mail saved..."); break; case MFMailComposeResultSent: NSLog(@"Mail sent..."); break; case MFMailComposeResultFailed: NSLog(@"Mail send errored: %@...", [error localizedDescription]); break; default: break; } [self dismissViewControllerAnimated:YES completion:nil]; }
方法二:
url方式
#pragma mark - 使用系统邮件客户端发送邮件 -(void)launchMailApp { NSMutableString *mailUrl = [[[NSMutableString alloc]init]autorelease]; //添加收件人 NSArray *toRecipients = [NSArray arrayWithObject: @"[email protected]"]; [mailUrl appendFormat:@"mailto:%@", [toRecipients componentsJoinedByString:@","]]; //添加抄送 NSArray *ccRecipients = [NSArray arrayWithObjects:@"[email protected]", @"[email protected]", nil]; [mailUrl appendFormat:@"?cc=%@", [ccRecipients componentsJoinedByString:@","]]; //添加密送 NSArray *bccRecipients = [NSArray arrayWithObjects:@"[email protected]", nil]; [mailUrl appendFormat:@"&bcc=%@", [bccRecipients componentsJoinedByString:@","]]; //添加主题 [mailUrl appendString:@"&subject=my email"]; //添加邮件内容 [mailUrl appendString:@"&body=<b>email</b> body!"]; NSString* email = [mailUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; [[UIApplication sharedApplication] openURL: [NSURL URLWithString:email]]; }
即 [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"mailto:[email protected]?cc=[email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"]];
还可使用skpsmtpmessage这样的第三方控件。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。