iOS12系统应用发送普通邮实现发送
iOS12系统应用发送普通邮实现发送
构建好邮件以后,可以发送该邮件。此时需要使用mailComposeDelegate属性,该属性用来设置委托,其语法形式如下:
unowned(unsafe) var mailComposeDelegate: MFMailComposeViewControllerDelegate? { get set }
该属性的值为MFMailComposeViewControllerDelegate协议类型。该协议中包含mailComposeController(_:didFinishWith:error:)方法。该方法会在用户关闭MFMailComposeViewController界面时调用,其语法形式如下:
optional func mailComposeController(_ controller: MFMailComposeViewController,
didFinishWith result: MFMailComposeResult,
error: Error?)
其中,参数说明如下:
- controller:MFMailComposeViewController对象。
- result:用户操作的结果。该参数是MFMailComposeResult枚举类型,该枚举类型中包含了4个成员。其中,cancelled表示轻拍取消中的“删除草稿”按钮;saved表示轻拍取消中的“保存草稿”按钮,邮件会保存在用户的“草稿”文件夹中,而不会发送;sent表示轻拍“发送”按钮,邮件添加到用户的发件箱,准备发送;failed表示邮件未保存或排队,可能是出现错误。
- error:Error对象。如果发生错误,此参数包含一个错误对象,其中包含失败类型的信息,如错误域和错误编码。开发者可以使用MFMailComposeErrorDomain全局变量获取错误域,其语法形式如下:
let MFMailComposeErrorDomain: String
而错误编码是MFMailComposeError.Code枚举类型。该枚举包含了2个成员。其中,saveFailed表示尝试将邮件保存到“草稿”文件夹时发生错误;sendFailed表示尝试排队或发送电子邮件时发生错误。
【示例3-1】下面发送一封普通邮件,内容为纯文本形式。代码如下:
@IBAction func sendMail(_ sender: Any) {
let composeVC = MFMailComposeViewController() //实例化
composeVC.mailComposeDelegate = self
composeVC.setToRecipients(["address@example.com"]) //设置收件人
composeVC.setSubject("Hello!") //设置主题
composeVC.setMessageBody("Hello from California!", isHTML: false) //设置邮件正文
self.present(composeVC, animated: true, completion: nil)
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
//轻拍取消中的“删除草稿”按钮
if(result==MFMailComposeResult.cancelled){
print("邮件取消")
}
//轻拍取消中的“保存草稿”按钮
if(result==MFMailComposeResult.saved){
print("邮件保存在草稿文件夹中")
}
//邮件失败
if(result==MFMailComposeResult.failed){
print("邮件失败")
}
//轻拍“发送”按钮
if(result==MFMailComposeResult.sent){
print("邮件已在用户的发件箱中排队,准备发送")
}
self.dismiss(animated: true, completion: nil)
}
运行程序,轻拍按钮,会打开MFMailComposeViewController提供的标准邮件界面,如图3.1所示。当轻拍“取消”按钮的“删除草稿”按钮后,会输出以下的内容:
邮件取消
当轻拍“取消”按钮的“保存草稿”按钮后,会输出以下的内容:
邮件保存在草稿文件夹中
当轻拍“发送”按钮后,会输出以下的内容:
邮件已在用户的发件箱中排队,准备发送
邮件发生错误,会输出以下的内容:
邮件失败
iOS12系统应用发送普通邮实现发送的更多相关文章
- iOS12系统应用发送普通邮件构建邮件
iOS12系统应用发送普通邮件构建邮件 当确定设备支持邮件发送功能后,开发者就可以实现该功能.根据是否包含附件,邮件可以分为普通邮件和附件邮件两种.本节首先讲解如何发送普通邮件.实现过程如下: 1.构 ...
- 用系统默认mail服务实现邮件发送
用系统默认mail服务实现邮件发送 1.操作步骤 第一步:设备服务器发送邮件要用的,邮箱地址,账号密码 编辑/etc/mail.rc vim /etc/mail.rc 在文件的结尾追加,账号信息配置 ...
- iOS12系统应用发送邮件中的附件
iOS12系统应用发送邮件中的附件 iOS12系统应用发送邮件中的附件,如果发送邮件的内容很多,或者包含文档.图片等,可以以附件的形式进行发送.此时需要使用addAttachmentData(_:mi ...
- iOS12系统应用开发发送邮件
iOS12系统应用开发发送邮件 消息分享是应用社交化和营销的重要途径.除了开发者自己搭建专有的消息分享渠道之外,还可以借助系统自带的各种途径.iOS提供了3种快速分享消息的方式,分别为发送邮件.发送短 ...
- TCP调试助手,十六进制发送或者字符串形式发送的理解
"无论创作还是欣赏,都是对法则和规律的逃逸,自由是艺术的源泉"-- 黑格尔 TCP调试助手中,在发送时可以选择十六进制发送或者字符串形式发送! 其实,两者最终调用的都是系统的soc ...
- SpringBoot系列(十四)集成邮件发送服务及邮件发送的几种方式
往期推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件详解 SpringBoot系列(四)web静 ...
- android 发送短信 怎样做到一条一条的发送,仅仅有在上一条发送成功之后才发送下一条短信
android发送短信截获上一条发送是否成功,然后再来发送下一条短信 1.问题:在项目中遇到例如以下要求:待发短信有N条,实现一条一条的发送并在上一条短信发送成功之后再来发送下一条. for(int ...
- linux c 使用socket 发送http请求 可以发送json格式数据
#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <time.h ...
- yii2验证密码->手机号码短信发送>手机短信发送频繁问题
<?php namespace frontend\models; use Yii; use yii\base\Model; class ChangeMobileSendRequestForm e ...
随机推荐
- Count on a tree SPOJ - COT (主席树,LCA)
You are given a tree with N nodes. The tree nodes are numbered from 1 to N. Each node has an integer ...
- centos 下安装显卡驱动步骤
一. 先下载自己显卡对应的linux版本的驱动文件, 一般都是.run的一个文件. 二.如果是新安装的系统,先安装编译环境,gcc,kernel-devel,kernel-headers (联网) ...
- golang 笔记
golang 的坑 package main import ( "fmt" "net/http" "time" ) func Hello(w ...
- Math & Number Theory
数学 数论: 莫比乌斯反演 矩阵游戏 小学数学,欧拉定理 组合: 线性代数: 高斯消元 其他: 一些题目
- tensorflow 语音识别报错
cuDnn由7.1版本改为7.4.2.24版本,成功
- Maven 学习总结 (二) 之 生命周期与插件
五.生命周期与插件 1.Maven有三套独立的生命周期:clean.default和site. clean生命周期的目的是清理项目,default生命周期的目的是构建项目,site生命周期的目的是建立 ...
- Git 分支 (三) 分支管理&&分支开发工作流
分支管理 git branch 命令不只是可以创建与删除分支. 如果不加任何参数运行它,会得到当前所有分支的一个列表: 注意 master 分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当 ...
- mui选择器的坑
mui框架最近比较火,因为在移动端的页面展示效果太好了,web页面相当于APP的效果.连二年级的小明同学都知道了..你别说你不知道哦 但是这毕竟是一个不成熟的框架,维护和解决方案都跟不上,因此新手入坑 ...
- js常用数据类型(Number,String,undefined,boolean) 引用类型( function,object,null ),其他数据类型( 数组Array,时间Date,正则RegExp ),数组与对象的使用
js常用数据类型 数字类型 | 字符串类型 | 未定义类型 | 布尔类型 typeof()函数查看变量类型 数字类型 Number var a1 = 10; var a2 = 3.66; conso ...
- django - 总结 - cnblog
1.头像预览 -------方法1-------- 点击头像------>点击input img和input重合; img在label,input-->display:none $(&qu ...