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:@"xxxxxx@163.com"]];// 抄送人[mailCompose setCcRecipients:[NSArray arrayWithObject:@"xxxxxx@163.com"]];// 密抄送人[mailCompose setBccRecipients:[NSArray arrayWithObject:@"xxxxxx@163.com"]];// 主题[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];
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/746581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

整型变量的原子操作

什么是原子操作 原子操作&#xff08;Atomic Operation&#xff09;是指不可中断的操作&#xff0c;即在多线程环境下&#xff0c;当一个线程在执行原子操作时&#xff0c;不会被其他线程的调度和中断所影响。这种操作在多线程编程中尤为重要&#xff0c;因为它能保证操作的原…

从零开始搭建医保购药APP:技术选择与开发流程

医保购药APP作为一种创新的医疗服务工具&#xff0c;为用户提供了便捷的医保购药流程&#xff0c;同时也为医疗机构提供了更高效的管理和服务方式。今天小编将为大家讲解如何从零开始搭建一款医保购药APP&#xff0c;包括技术选择和开发流程。 一、技术选择 在搭建医保购药APP…

openssl3.2 - note - Decoders and Encoders with OpenSSL

文章目录 openssl3.2 - note - Decoders and Encoders with OpenSSL概述笔记编码器/解码器的调用链OSSL_STORE 编码器/解码器的名称和属性OSSL_FUNC_decoder_freectx_fnOSSL_FUNC_encoder_encode_fn官方文档END openssl3.2 - note - Decoders and Encoders with OpenSSL 概述 …

js-循环返回多条数据,每条数据文本超过三行进行展开与收起的实现

1.基本需求 返回多条数据&#xff0c;每条数据在一定宽度的盒子内&#xff0c;文本超过三行进行文本的展开与收起 2.实现逻辑 对于返回的每条数据添加属性expend&#xff1a;false来在循环中进行对于展开收起的判断。 动态计算盒子宽度随着分辨率的变化而变化的值boxWidth。获…

基于单片机的智能环境监测系统

摘 要 本设计主要由温湿度检测、烟雾检测电路、报警电路、显示电路和人体检测等模块组成。温湿度检测部分使用的是DHT11这种型号的温湿度传感器。DHT11是一种单总线型数字式温湿度传感器&#xff0c;它具有误差小、分辨率高、抗干扰能力强等特点。在烟雾检测电路模块当中&…

Nginx 隐藏版本号

只是隐藏 Nginx 版本号&#xff0c;只需在 Nginx 配置文件全局段添加 server_tokens off 然后重启 Nginx 服务 默认安装好了的 Nginx 服务 查看版本 现在修改配置 重启 Nginx 版本信息看不到了 我们下期见&#xff0c;拜拜&#xff01;

Win11安装Plsql140报错2503

一、安装异常 二、解决办法 出现上述问题&#xff0c;主要是因为msi包安装的权限问题&#xff0c;使用管理员权限安装即解决 。cmd控制台以管理员身份打开WINR&#xff09;->(SHIFTCTRLRNTER)&#xff0c;进入到msi安装包目录下&#xff0c;以管理员身份安装即可&#xff1…

mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

mysql数据库&#xff1a;使用 bash脚本 定时任务 自动备份数据 1、前言2、为什么需要自动化备份&#xff1f;3、编写备份脚本4、备份脚本授权5、添加定时任务6、重启 crond / 检查 crond 服务状态7、备份文件检查 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏…

LeetCode28.找出字符串中第一个匹配项

28.找出字符串中第一个匹配项 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。 示例 1&#xff1a; 输入…

“优化消费环境 维护消费者权”荥阳市城关乡社工站开展3·15宣传志愿活动

又是一年“315”&#xff0c;为提高辖区群众消费维权意识&#xff0c;让他们可以学会运用政策法律知识维护自身合法权益&#xff0c;同时也为营造出辖区良好营商环境。2024年3月15日&#xff0c;在荥阳市民政局、荥阳市市场监督管理局、城关乡人民政府的支持下&#xff0c;城关…

“值此春意,共享蓝天”—携手植新绿·静待成荫时

种竹交加翠&#xff0c;栽桃烂漫红。——唐杜甫《春日江村》 春风十里&#xff0c;万物生长。春风吹拂绿色现&#xff0c;树吐嫩芽花鲜艳。植树正是好季节&#xff0c;男女老少齐挥铲。种下棵棵小树苗&#xff0c;辛勤培育勤浇灌。来年长成苍天木&#xff0c;绿树成荫美景见。 …

基于ElasticSearch存储海量AIS数据:时空立方体索引篇

文章目录 引言I 时间维切分II 空间范围切分引言 索引结构制约着查询请求的类型和处理方式,索引整体架构制约着查询请求的处理效率。随着时间推移,AIS数据在空间分布上具备局部聚集性,如 果简单地将所有AIS数据插入一个索引结构,随着数据量增长,索引的更新效率、查询效率及…

RabbitMQ 模拟实现【六】:程序模拟实现

文章目录 模拟实现模拟消费者模拟生产者效果展示 启动结果如下&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/71841546ad8043f1bd51e4408df791de.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f6e3e72ff9a4483c978ec48e24f075c2.p…

OceanBase原理之内存管理

第1章 前言 1.1 多租户管理简介 OceanBase数据库中&#xff0c;应用了单集群多租户的设计&#xff0c;使得一个集群内能够创建多个彼此独立的租户。在OceanBase数据库&#xff0c;租户成为了资源分配的单位&#xff0c;同时还是数据库对象管理和资源管理的基础。 在某种程度…

桌面备忘录,电脑桌面备忘录怎么设置

在当今快节奏的生活中&#xff0c;备忘录成为了人们工作和生活中不可或缺的工具。然而&#xff0c;随着科技的发展&#xff0c;纸质备忘录逐渐被电子桌面备忘录所取代。在电脑桌面设置备忘录&#xff0c;可以更加高效地管理任务和提醒事项。 电脑桌面是我们日常工作和娱乐的主…

2024年语言艺术、人文发展与教育国际会议(ICLAHDE2024)

2024年文学、历史与艺术设计国际会议(ICLHAD2024) 一、【会议简介】 2024年国际语言艺术、人文发展与教育会议&#xff08;ICLAHDE2024&#xff09;将在中国昆明举行&#xff0c;主题为“语言、人文与艺术”。ICLAHDE汇集了来自世界各地语言艺术、人类发展和教育领域的学者、工…

UE5C++学习(二)--- 角色简单连击

本文记录一下一个简单的角色基础连招。 它的做法就是&#xff1a;我们鼠标左键连续按下&#xff0c;会有一个动画蒙太奇索引去计数&#xff0c;获取到对应的蒙太奇动画数组中指定下标的攻击蒙太奇动画&#xff0c;然后进行播放&#xff1b;在播放的过程中用StartAttack()骨骼通…

刚刚拿到某安全公司「代码审计岗位」面试题

刚刚拿到&#xff0c;某安全公司「代码审计岗位」的面试题&#xff0c;让小编瞬间感到一股紧张又兴奋的情绪涌上心头。 代码审计&#xff0c;这个在信息安全领域里举足轻重的岗位&#xff0c;它要求的不仅仅是过硬的技术实力&#xff0c;更需要对细节敏锐的洞察力和对安全漏洞…

常见的软件系统性能测试指标

常见的软件系统性能测试指标 衡量一个软件系统性能的好坏&#xff0c;在性能测试中会使用一些性能指标来进行分析和描述&#xff0c;以下是一些最常用的性能指标。 1.2.1 响应时间 请求或者某个操作从发出的时间到收到服务器响应的时间的差值就是响应时间。在性能测试中&am…

微信小程序--开启下拉刷新页面

1、下拉刷新获取数据enablePullDownRefresh 开启下拉刷新&#xff1a; enablePullDownRefreshbooleanfalse是否开启当前页面下拉刷新 案例&#xff1a; 下拉刷新&#xff0c;获取新的列表数据,其实就是进行一次新的网络请求&#xff1a; 第一步&#xff1a;在.json文件中开…