iOS发送邮件和短信

:MFMailComposeViewController

这个类提供了一个标准的界面来管理编辑和发送邮件的!,可以使用这个控制器在你的App里展示一个标准邮件信息界面,在展示界面之前,应该给subject(标题),recipients(接收邮件的人),和attachment(邮件的附件)复制,在展示邮件界面后,用户可以在发送邮件前继续编辑你提供的值.


在展示邮件界面前,一定要先调用canSendMail方法,以此来确定当前设备是否支持发送邮件,如果返回值为NO,可以将不支持的信息提示用户,也可以不提供给用户发邮件的功能!千万不能在这个方法返回NO的情况下调用邮件界面!

if (![MFMailComposeViewController canSendMail]) {

   NSLog(@"Mail services are not available.");

   return;

}

//一定要加上判断!

MFMailComposeViewController* composeVC = [[MFMailComposeViewController alloc] init];

composeVC.mailComposeDelegate = self;//切记要设置代理!

 

// Configure the fields of the interface.

[composeVC setToRecipients:@[@"address@example.com"]]; //设置接受者

[composeVC setSubject:@"Hello!"];//设置标题

[composeVC setMessageBody:@"Hello from California!" isHTML:NO];//设置邮件内容,isHTML为yes的话可以将消息以Html语言传送!,为NO则只传明文

 //界面需要手动调用

[self presentViewController:composeVC animated:YES completion:nil];

下面是它的代理方法:

- (void)mailComposeController:(MFMailComposeViewController *)controller

          didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error //在这个方法里dimiss邮件界面,并根据result可以做相关处理,最好提示用户结果!


值得注意的是,邮件发送是通过系统的邮箱发送的,用户可以在邮件真正发送之前删除它,所以App里提示的MFMailComposeResult结果是成功的,但事实上并不意味着邮件就真的发送出去了,只是说明邮件已经被成功添加到了发送队列!实际上,在这个类里苹果并没有针对邮件真正的发送结果提供方法!

这个类还有几个方法

setCcRecipients:

setBccRecipients:

这两个方法都是设置抄送人的,不同的是上一个方法的抄送人大家都能相互看见,后面一个方法则是隐秘的抄送,也就是看不见其他的抄送人

en如果你需要传送文件或者图片之类的附件,则上面的setMessageBody则力不能及了,需要使用addAttachmentData:mimeType:fileName:方法,其中mimeType可以自行百度



:MFMessageComposeViewController

这个类提供了一个编辑和发送SMS(文字信息)或者MMS(多媒体信息)的标准界面,说白了就是短信和彩信!

这个类和上面的发送邮件的类差不多,不同的是判定方法不同!

canSendText //判断是否支持发送文字信息

canSendAttachments //判断是否支持发送附件

canSendSubject //判断是否支持发送主题信息

isSupportedAttachmentUTI: //判断是否支持附件UTI,UIT(Uniform Type Identifiers,相同类型标识符)每个UTI为特殊文件类型,数据类型,路径或者包类型等等提供了一个唯一的标识符,目的是为了识别文件类型是否被支持,比如Text文件有些是以Text结尾,有些是以txt结尾,有些能打开,有些打不开,所以苹果为了用户考虑,为每个文档数据提供了一个UTI标志符!说白了,就是针对一些特殊的文件格式,判断它的UTI,看能否用苹果支持的格式打开!


实际测试:邮件发送正常,信息发送会在弹出控制器后立刻取消,原因未明!如果真的需要可以通过openURL的方式在应用外打开发送信息的功能!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值