邮件分享
来源:互联网 发布:如何升级mac os x 编辑:程序博客网 时间:2024/05/02 10:56
本篇和UIWebView的全屏截图,可以一起使用,先对UIWebView进行截图,然后分享到邮箱(当时做还有分享到微信、腾讯微博、新浪微博功能,这三个根据官方资料,比较容易实现,这里就不进行解说了)。
下面先列出实现邮件发送功能的源码:
1 - (void)displayMailComposerSheet 2 { 3 MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 4 5 // 设置picker的委托方法,完成之后会自动调用成功或失败的方法 6 picker.mailComposeDelegate = self; 7 // 添加主题 8 [picker setSubject:@"文件分享"]; 9 // 添加收件人10 NSArray *toRecipients = [NSArray arrayWithObject:@"279352257@qq.com"];11 // 说明:也可以添加多个收件人,代码如下所示:12 // NSArray *toRecipients = [NSArray arrayWithObjects:@"one@qq.com",@"two@qq.com",nil];13 // 添加抄送14 // NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@qq.com",@"third@qq.com", nil];15 // 添加密送16 // NSArray *bccRecipients = [NSArray arrayWithObject:@"fourth@qq.com"];17 18 [picker setToRecipients:toRecipients];19 // [picker setCcRecipients:ccRecipients];20 // [picker setBccRecipients:bccRecipients];21 22 // 直接在HTML代码中写入图片的地址23 NSString *emailBody = [NSString stringWithFormat:@"<img src='http://p2.so.qhimg.com/t0130e3288d86929b97.jpg' /><p>我分享了图片</p>"];24 25 [picker setMessageBody:emailBody isHTML:YES];26 [self presentModalViewController:picker animated:YES];27 [picker release];28 }
这样实现的效果是,在邮件中会显示一个图片和一段文本,关键是第25行代码,一定要设置isHTML为YES。但实际应用中,图片一般我们没有上传到服务器上,而是在客户端,这时候我们可以用下面的方式来发送图片(将第23行代码替换成下面的代码):
1 // 发送图片附件(其他格式的附件,可以都先转化称NSData类型,然后设置相应的mimeType即可,如txt类型为@"text/txt",doc类型为@"text/doc",pdf类型为@"file/pdf"等等)2 NSData *myData = [NSData dataWithContentsOfFile:[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"new.png"]];3 [picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"new.png"];4 NSString *emailBody = [NSString stringWithFormat:@"<p>我分享了图片</p>"];
使用上面这种方式,将isHTML设置为YES的话,图片会显示在正文中;isHTML设置为NO的话,图片会显示在附件中。
邮件发送完成之后,可以在如下的委托方法中进行相应的处理,委托方法如下所示:
1 - (void)mailComposeController:(MFMailComposeViewController*)controller 2 didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 3 { 4 switch (result) 5 { 6 case MFMailComposeResultCancelled: 7 NSLog(@"Result: Mail sending canceled"); // 邮件发送取消 8 break; 9 case MFMailComposeResultSaved:10 NSLog(@"Result: Mail saved"); // 邮件保存成功11 break;12 case MFMailComposeResultSent:13 NSLog(@"Result: Mail sent"); // 邮件发送成功14 break;15 case MFMailComposeResultFailed:16 NSLog(@"Result: Mail sending failed"); // 邮件发送失败17 break;18 default:19 NSLog(@"Result: Mail not sent");20 break;21 }22 [self dismissModalViewControllerAnimated:YES];23 }
调用邮件发送功能的代码如下:
1 Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); 2 3 if (mailClass !=nil) 4 { 5 if ([mailClass canSendMail]) 6 { 7 [self displayMailComposerSheet]; 8 } 9 else10 {11 UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@""message:@"不支持邮件功能" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];12 [alert show];13 [alert release];14 }15 }16 else17 {18 19 }
【说明】:使用邮件发送功能,需要引入MessageUI.framework 框架,并且添加如下头文件:
#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>
实现接口MFMailComposeViewControllerDelegate。
循自然之道,抚浮躁之心
0 0
- 邮件分享
- 邮件发送代码分享
- 实现邮件分享功能
- EDM邮件之经典邮件策略分享
- 发送短信分享和邮件分享
- 发送短信分享和邮件分享
- iOS应用程序短信分享和邮件分享
- Android微信分享和邮件分享
- code Review实践分享 邮件
- 邮件、短信分享 推荐、电话
- iOS:电话分享、短信分享和邮件分享
- [分享] 回复客人邮件的一点体会
- 分享曲折的邮件解码经验
- 用JMail发送邮件的程序分享
- Office2010 分享之一 Outlook邮件管理
- 邮件营销技巧和经验分享
- php学习分享 一个邮件队列案例
- 分享一个异步发送邮件的类
- UIImage图片部分拉伸
- 常用ntp服务器
- 指针与数组
- Foxit PDF Creator注册码
- DataGridView 单击选中一整行,只能单选,不能选择多行,只能选择一行
- 邮件分享
- phonegap文件读取
- EditText 获取焦点后禁止弹出软键盘
- Memcached Java Client API详解
- 工程设计的智能台灯
- 闭包
- vi编辑器之问答
- Android_低版本使用ActionBar
- System.Drawing.Color的几种使用方法