发送邮件
1.导入库文件:MessageUI.framework
2.引入头文件
3.实现代理<MFMailComposeViewControllerDelegate> 和 <UINavigationControllerDelegate>
代码示例:

- (void)didClickSendEmailButtonAction{  

    if ([MFMailComposeViewController canSendMail] == YES) {  

        MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init];
// 设置代理(与以往代理不同,不是"delegate",千万不能忘记呀,代理有3步)
mailVC.mailComposeDelegate = self;
// 收件人
NSArray *sendToPerson = @[@"humingtao2014@gmail.com"];
[mailVC setToRecipients:sendToPerson];
// 抄送
NSArray *copyToPerson = @[@"humingtao2013@126.com"];
[mailVC setCcRecipients:copyToPerson];
// 密送
NSArray *secretToPerson = @[@"563821250@qq.com"];
[mailVC setBccRecipients:secretToPerson];
// 主题
[mailVC setSubject:@"hello world"];
[self presentViewController:mailVC animated:YES completion:nil];
[mailVC setMessageBody:@"魑魅魍魉,哈哈呵呵嘿嘿霍霍" isHTML:NO];
}else{ NSLog(@"此设备不支持邮件发送"); } } - (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ switch (result) {
case MFMailComposeResultCancelled:
NSLog(@"取消发送");
break;
case MFMailComposeResultFailed:
NSLog(@"发送失败");
break;
case MFMailComposeResultSaved:
NSLog(@"保存草稿文件");
break;
case MFMailComposeResultSent:
NSLog(@"发送成功");
break;
default:
break;
} [self dismissViewControllerAnimated:YES completion:nil];
} // 系统发送,模拟器不支持,要用真机测试
- (void)didClickSendSystemEmailButtonAction{ NSURL *url = [NSURL URLWithString:@"humingtao2014@gmail.com"];
if ([[UIApplication sharedApplication] canOpenURL:url] == YES) { [[UIApplication sharedApplication] openURL:url]; }else{ NSLog(@"此设备不支持");
} }

发送短信
前面三步引入配置和邮件发送一样

//  调用系统API发送短信
- (void)didClickSendMessageButtonAction{ if ([MFMessageComposeViewController canSendText] == YES) { MFMessageComposeViewController *messageVC = [[MFMessageComposeViewController alloc] init];
// 设置代理<MFMessageComposeViewControllerDelegate>
messageVC.messageComposeDelegate = self;
// 发送To Who
messageVC.recipients = @[@""];
messageVC.body = @"hello world";
[self presentViewController:messageVC animated:YES completion:nil]; }else{ NSLog(@"此设备不支持");
}
} - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{ switch (result) {
case MessageComposeResultCancelled:
NSLog(@"取消发送");
break;
case MessageComposeResultFailed:
NSLog(@"发送失败");
break;
case MessageComposeResultSent:
NSLog(@"发送成功");
break;
default:
break;
} [self dismissViewControllerAnimated:YES completion:nil]; } // 调用系统应用程序发送消息
- (void)didClickSendMessage2ButtonAction{ NSURL *url = [NSURL URLWithString:@"sms:18656348970"];
if ([[UIApplication sharedApplication] canOpenURL:url] == YES) { [[UIApplication sharedApplication] openURL:url]; }else{ NSLog(@"失败");
} }

iOS:实现邮件和短信发送的简单示例的更多相关文章

  1. zabbix告警邮件、短信发送错误快速排查方法

    zabbix告警邮件.短信发送错误快速排查方法 背景 zabbix告警邮件.短信经常有同事反馈发送错误的情况,这个问题排查的角度很多,那么最快捷的角度是什么呢? 在我看来,最快的角度就是判断这个告警邮 ...

  2. 使用gearman进行异步的邮件或短信发送

    一.准备工作 1.为了防止,处理业务途中出现的宕机,请配置好gearman的持久化方式.2.使用gearmanManager来管理我们的worker脚本,方便测试. 上述两条请看我之前写的两篇文章 二 ...

  3. iOS打电话、发短信、发邮件功能开发

    本文转载至 http://www.lvtao.net/ios/506.html 今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主 ...

  4. C# 短信发送 邮件发送

    兴趣是最好的老师. --爱因斯坦 一.实现短信发送 1.使用短信mao的方式进行短信发送,前提要购买硬件设备,这里就不考虑展示了: 2.使用中国网建提供的短信平台,但是用几次后要收费: 我们这里主要介 ...

  5. iOS基本的发短信和打电话调用

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...

  6. 基于日志服务的GrowthHacking(1):数据埋点和采集(APP、Web、邮件、短信、二维码埋点技术)

    数据质量决定运营分析的质量 在上文中,我们介绍了GrowthHacking的整体架构,其中数据采集是整个数据分析的基础,只有有了数据,才能进行有价值的分析:只有高质量的数据,才能驱动高质量的运营分析. ...

  7. IOS程序内发短信 MFMessageComposeViewController

    文章转载地址:http://www.headsky.org/?p=63 iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewCon ...

  8. 4、ABPZero系列教程之拼多多卖家工具 集成短信发送模块

    ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...

  9. ABP集成短信发送模块

    ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...

随机推荐

  1. [bzoj3306]树——树上倍增+dfs序+线段树

    Brief Description 您需要写一种数据结构,支持: 更改一个点的点权 求一个子树的最小点权 换根 Algorithm Design 我们先忽略第三个要求. 看到要求子树的最小点权,我们想 ...

  2. Python小程序之动态修改Haproxy配置文件

    需求如下: 1.动态的查询添加删除haproxy节点信息 2.程序功能:add(添加).Del(删除).Query(查询) 3.添加时实例字符串为:  {'backend': 'www.oldboy. ...

  3. Python小程序之购物车

    需求: 用户入口: 1.商品信息放在文件中,从文件中读取 2.已购商品,余额记录,第一要输入起始金额,以后不需要二次输入 商家入口: 2.可以添加商品,修改商品价格 # Author:Lee Siri ...

  4. python基础===修改idle的输入风格

    http://blog.csdn.net/aq_cainiao_aq/article/details/51701861

  5. PHP定时执行

    参考一 test.bat D:\myamp\php\php.exe -q D:\myamp\Apache\htdocs\dingshi.php dingshi.php <?php ignore_ ...

  6. 堆外内存: Chronicle Map

    https://www.javacodegeeks.com/2015/04/chroniclemap-java-architecture-with-off-heap-memory.html Java堆 ...

  7. Tk写的发邮件小程序

    from tkinter import * import smtplib from email.mime.text import MIMEText from email.header import H ...

  8. Selenium2+python自动化73-定位的坑:class属性有空格【转载】

    前言 有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message: The given selector u-label f-dn ...

  9. Canvas基础——钟表绘制

    首先,canvas语法基础薄弱的小伙伴请点这里,剩下的小伙伴们可以接着往下看了. 一个表,需要画什么出来呢:3条线(时分秒针),1个圆(表盘),以及60条短线/点(刻度). 嗯,没毛病. 那接下来让我 ...

  10. Arduino mega 2560驱动安装失败(没有建立对验证码(TM)签名的目录的发布者信任)的解决方法

    转载请注明出处,谢谢...... 放假的时候在自己家台式机上安装时候是很顺畅的,今天在自己本子上安装的时候就不行了~ IDE版本:1.05 问题描述:在网上搜索了相关问题,发现绝大部分安装失败的时候都 ...