首页 > 其他分享 >MFMailComposeViewController 发送邮件

MFMailComposeViewController 发送邮件

时间:2024-03-15 15:31:02浏览次数:20  
标签:case break NSLog 发送 mailCompose MFMailComposeViewController 邮件

通过 MFMailComposeViewController 发送邮件,需预先登录邮箱账号的情况下;

具体实现与配置参数请参考如下:

首先,引入 MFMailComposeViewController 库

#import <MessageUI/MessageUI.h>

其次,实现相关 api 方法

    if ([MFMailComposeViewController canSendMail]) {
        MFMailComposeViewController *mailCompose = [[MFMailComposeViewController alloc] init];
        mailCompose.mailComposeDelegate = self;
        mailCompose.navigationBar.tintColor = [UIColor blackColor];
        // 收件人
        [mailCompose setToRecipients:[NSArray arrayWithObject:@"[email protected]"]];
        // 抄送人
        [mailCompose setCcRecipients:[NSArray arrayWithObject:@"[email protected]"]];
        // 密抄送人
        [mailCompose setBccRecipients:[NSArray arrayWithObject:@"[email protected]"]];
        // 主题
        [mailCompose setSubject:@"标题"];
        // 内容
        [mailCompose setMessageBody:@"内容" isHTML:NO];
        // 附件
        [mailCompose addAttachmentData:UIImagePNGRepresentation([UIImage imageNamed:@"vipLogo"]) mimeType:@"" fileName:@"icon.png"];
        [self presentViewController:mailCompose animated:YES completion:nil];
    } else {
        // 请先登录邮箱账号
    }

最后,实现 MFMailComposeViewControllerDelegate 代理方法即可
注:如下代理方法一定要实现!

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error {
    switch (result) {
        case MFMailComposeResultSent:
            NSLog(@"[邮件] - 发送成功");
            break;
            
        case MFMailComposeResultCancelled:
            NSLog(@"[邮件] - 发送取消");
            break;
            
        case MFMailComposeResultSaved:
            NSLog(@"[邮件] - 保存");
            break;
            
        case MFMailComposeResultFailed:
            NSLog(@"[邮件] - 发送失败");
            break;
            
        default:
            break;
    }
    // 关闭邮件视图组件
    [self dismissViewControllerAnimated:YES completion:nil];
}

以上便是此次分享的全部内容,希望能对大家有所帮助!

标签:case,break,NSLog,发送,mailCompose,MFMailComposeViewController,邮件
From: https://blog.csdn.net/survivorsfyh/article/details/136741100

相关文章

  • Grafana将监控信息渲染成图片并且邮件发送的过程
    Grafana将监控信息渲染成图片并且邮件发送的过程背景去年12月份时自己创建了一套Grafana监控可以监控redis,hikari,启动时间,补丁更新时间等等事项.但是因为后续的事情比较多,一直有一点荒废了.最近折腾阿里云,让阿里云给自己发了一个简单的大屏展示.突然想其实自己也可......
  • STM32F105双路隔离型CAN总线转4G控制板 - 把CAN数据发送到TCP服务器,实现通过TCP透传
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/product/STM32F105_2CAN/index.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>......
  • webScoket离线消息暂存,上线发送
    webScoket离线消息暂存,上线发送用webScoket的即时聊天通讯,功能可群发单发,可对不在线用户发送消息时用户一上线立马就能收到消息,也可以查看未读数量导入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</arti......
  • HarmonyOS 发送系统通知 基础通知
    harmonyos中提供了各种不同功能的通知来满足我们不同的业务需求本文呢我们先来看最基本的通知它的场景和使用方式最基本的是当应用被切入后台而应用内部发生了一些变化就可以用通知的方式来提醒用户就比如我们微信被切到了后台而这时别人发消息过来了那......
  • python实现发送邮件
    python实现自动化邮件发送测试环境:os:windows10编译软件:pycharm,python发送端:[email protected]接收端:[email protected],[email protected] 1.发送端需开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。我这里使用的是QQ,需要去mail.qq.com开启此服务:【登录】-【设置】-【账号】-【OP3/IMA......
  • Jmeter —— jmeter利用取样器中http发送请求
    使用Jmeter发送HTTP请求取样器是用来模拟用户操作,向服务器发送请求以及接收服务器的响应数据的一类元件,其中HTTP请求取样器是用来模拟常用的http请求的步骤如下:步骤一:添加线程组右击测试计划——添加——线程(用户)——线程组如下图:“线程组”的意思:JMeter是由Java实现的,并......
  • Rancher怎么设置把日志发送给elasticsearch
    搭建elascsearch集群不详述配置日志发送打开日志Rancher配置日志发送其实时在node启用了Daemonset使用fluentd进行日志收集#kubectlgetdaemonset-ncattle-loggingNAMEDESIREDCURRENTREADYUP-TO-DATEAVAILABLEN......
  • 别让黑客窥探你的邮件,SSL安全加密,私密从此有保障
    在数字化的世界中,电子邮件已成为人们日常生活和工作中不可或缺的通讯方式。随着互联网的发展,邮件传输安全逐渐成为了大众关注的焦点之一。SSL(SecureSocketsLayer)协议作为一种保护网络通信安全的加密协议,其在邮件传输中的应用显得尤为重要。SSL协议最初是由网景公司(Netscape)研发......
  • Docker自建Email服务器-已购域名上私人邮件系统
    搭建Email服务,该方法适用于个人,公司或组织备注:这是我找到唯一简便安装且能正常使用的邮件系统,请留言告诉我你是否有更好的自建解决方案。踩了很多的坑,经历了一个月左右的时间,才测试收发邮件成功(部分邮箱目的地无法达到,由于互联网上的反垃圾邮件策略),持续更新完善中.朗读全文......
  • ChatGPT 发送消息后无响应,三个办法教你解决
    问题复现1.给ChatGPT发送消息没有任何反应2.浏览器开发者工具发现很多如下错误解决办法方法一:清除浏览器缓存清除浏览器缓存这个方法适合新手,也是最简单的办法,清除浏览器缓存后重新登录账号即可恢复正常使用。方法二:清除浏览器本地缓存数据这个方法比较专......