IOS开发中发送Email的两种方法
IOS系统框架提供的两种发送Email的方法:openURL 和 MFMailComposeViewController。借助这两个方法,我们可以轻松的在应用里加入如用户反馈这类需要发送邮件的功能。
1.openURL
- #pragma mark - 使用系统邮件客户端发送邮件
- -(void)launchMailApp
- {
- NSMutableString *mailUrl = [[[NSMutableString alloc]init]autorelease];
- //添加收件人
- NSArray *toRecipients = [NSArray arrayWithObject: @"first@example.com"];
- [mailUrl appendFormat:@"mailto:%@", [toRecipients componentsJoinedByString:@","]];
- //添加抄送
- NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil];
- [mailUrl appendFormat:@"?cc=%@", [ccRecipients componentsJoinedByString:@","]];
- //添加密送
- NSArray *bccRecipients = [NSArray arrayWithObjects:@"fourth@example.com", 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]];
- }
2.MFMailComposeViewController
- 1.项目中引入MessageUI.framework;
- 2.在使用的文件中导入MFMailComposeViewController.h头文件;
- 3.实现MFMailComposeViewControllerDelegate,处理邮件发送事件;
- 4.调出邮件发送窗口前先使用MFMailComposeViewController里的“+ (BOOL)canSendMail”方法检查用户是否设置了邮件账户;
- 5.初始化MFMailComposeViewController,构造邮件体
- //
- // ViewController.h
- // MailDemo
- //
- // Created by LUOYL on 12-4-4.
- // Copyright (c) 2012年 http://luoyl.info. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- #import <MessageUI/MFMailComposeViewController.h>
- @interface ViewController : UIViewController<MFMailComposeViewControllerDelegate>
- @end
- #pragma mark - 在应用内发送邮件
- //激活邮件功能
- - (void)sendMailInApp
- {
- Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
- if (!mailClass) {
- [self alertWithMessage:@"当前系统版本不支持应用内发送邮件功能,您可以使用mailto方法代替"];
- return;
- }
- if (![mailClass canSendMail]) {
- [self alertWithMessage:@"用户没有设置邮件账户"];
- return;
- }
- [self displayMailPicker];
- }
- //调出邮件发送窗口
- - (void)displayMailPicker
- {
- MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];
- mailPicker.mailComposeDelegate = self;
- //设置主题
- [mailPicker setSubject: @"eMail主题"];
- //添加收件人
- NSArray *toRecipients = [NSArray arrayWithObject: @"first@example.com"];
- [mailPicker setToRecipients: toRecipients];
- //添加抄送
- NSArray *ccRecipients = [NSArray arrayWithObjects:@"second@example.com", @"third@example.com", nil];
- [mailPicker setCcRecipients:ccRecipients];
- //添加密送
- NSArray *bccRecipients = [NSArray arrayWithObjects:@"fourth@example.com", nil];
- [mailPicker setBccRecipients:bccRecipients];
- // 添加一张图片
- UIImage *addPic = [UIImage imageNamed: @"Icon@2x.png"];
- NSData *imageData = UIImagePNGRepresentation(addPic); // png
- //关于mimeType:http://www.iana.org/assignments/media-types/index.html
- [mailPicker addAttachmentData: imageData mimeType: @"" fileName: @"Icon.png"];
- //添加一个pdf附件
- NSString *file = [self fullBundlePathFromRelativePath:@"高质量C++编程指南.pdf"];
- NSData *pdf = [NSData dataWithContentsOfFile:file];
- [mailPicker addAttachmentData: pdf mimeType: @"" fileName: @"高质量C++编程指南.pdf"];
- NSString *emailBody = @"<font color='red'>eMail</font> 正文";
- [mailPicker setMessageBody:emailBody isHTML:YES];
- [self presentModalViewController: mailPicker animated:YES];
- [mailPicker release];
- }
- #pragma mark - 实现 MFMailComposeViewControllerDelegate
- - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
- {
- //关闭邮件发送窗口
- [self dismissModalViewControllerAnimated:YES];
- NSString *msg;
- switch (result) {
- case MFMailComposeResultCancelled:
- msg = @"用户取消编辑邮件";
- break;
- case MFMailComposeResultSaved:
- msg = @"用户成功保存邮件";
- break;
- case MFMailComposeResultSent:
- msg = @"用户点击发送,将邮件放到队列中,还没发送";
- break;
- case MFMailComposeResultFailed:
- msg = @"用户试图保存或者发送邮件失败";
- break;
- default:
- msg = @"";
- break;
- }
- [self alertWithMessage:msg];
- }
转载于:https://www.cnblogs.com/greywolf/archive/2012/07/30/2615659.html
IOS开发中发送Email的两种方法相关推荐
- IOS iPhone开发中发送e-mail的3种方式
iOS系统框架提供的两种发送Email的方法1.使用openURL来实现发邮件的功能:NSString *url = [NSString stringWithString: @"mailto ...
- iOS: JS和Native交互的两种方法,iosjsnative交互
iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)string ...
- python字典取值_python 字典中取值的两种方法小结
python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...
- 站长在线Python精讲:在Python中格式化字符串的两种方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...
- 在PowerPoint中插入视频的两种方法
转载者: 怎么做ppt课件背景 来源: www.2ppt.cn 为追求更完美效果,在Powerpoint中通过shockwave Flash Object控件插入SWF格式动 ...
- Wordpress开发 - 获取作者头像的两种方法
写在前面 今天又被一个头像坑搞惨了,一般我们获取作者的信息是都需要在循环判断中才可以使用的!比如获取作者名称 <?php the_author(); ?> .如果没有在 <?php ...
- html怎么样取jsp中的路径,jsp中获得路径的两种方法和获得url路径的方法(推荐)
是解决相对路径的问题,可返回站点的根路径. //这样获得的是绝对路径 //这样获得的是相对路径 能够更有效的防治连接的失效. request.getContextPath()得到的是项目的名字,如果项 ...
- python自带的shell是什么-python中执行shell的两种方法总结
一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...
- python右对齐格式化输出_Python中格式化输出的两种方法介绍
本篇文章给大家带来的内容是关于Python中格式化输出的两种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 方式一:使用占位符 % 常用占位符:% s (s = string ...
最新文章
- sql server数据库定时自动备份
- c++实现ftp服务器_第三步,尝试用树莓派搭建你的云计算平台和服务器
- 《构建之法》阅读笔记4
- 国产浏览器 linux,360安全浏览器推出国产操作系统版,在deepin上架获得高度点赞...
- HTML DOM知识点补充:
- 20145313张雪纯《信息安全系统设计基础》第11周学习总结
- python-3.6.2安装
- 需求文档:没有标准,只有沟通
- 详细探究Spark的shuffle实现
- javascript图片库威力增强版
- oracle 查看 统计更新时间,oracle查看和更新统计表的信息
- 安装Discuz论坛
- python中re怎么念_Python中re(正则表达式)模块学习
- Hadoop大数据平台
- SSM+Bootstrap+MYSQL演唱会网上订票系统
- 本地服务启动慢问题及dubbo测试方法记录
- 自然语言处理NLP简介
- 利用华为云ECS服务器搭建安防视频监控平台
- igd12um32xel.dll病毒
- 青龙+WxPusher实现资产推送
热门文章
- Session分布式共享 = Session + Redis + Nginx
- 设计模式10——flyweight模式
- 海康威视连续采图设置ROI局部显示_c#
- python综合案例分享_Python面向对象 三大特性 综合案例+1(视频里的作业)
- g++ 安装python_mac编译安装faiss
- 统计app用户在线时长_优质的APP推广渠道,应该如何筛选?
- php mysql 时间戳查询_mysql中时间查询函数(包括时间戳)
- 揭阳电网要求计算机二级吗,2018年3月广东省揭阳市计算机等级考试考务通知
- mysql迅速搭建网页_Django + mysql 快速搭建简单web投票系统
- python层次聚类分析_SPSS聚类分析:系统聚类分析