使用MessageUI.framework框架除了可以发送短信,还能发送Email,步骤如下:

(1)首先判断设备是否有发送邮件功能
(2)如果设备允许发送邮件,创建一个MFMailComposeViewController视图控制器,并对其设置邮件标题,正文内容,收件人,附件等。
(3)邮件发送后,会执行回调代理方法,可以获取发送结果(成功,失败或取消)
效果图如下:
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import UIKit
import MessageUI
class ViewController: UIViewController ,UINavigationControllerDelegate,
MFMailComposeViewControllerDelegate{
    override func viewDidLoad() {
        super.viewDidLoad()
         
        //首先要判断设备具不具备发送邮件功能
        if MFMailComposeViewController.canSendMail(){
            let controller = MFMailComposeViewController()
            //设置代理
            controller.mailComposeDelegate = self
            //设置主题
            controller.setSubject("我是邮件标题")
            //设置收件人
            controller.setToRecipients(["a1@hangge.com","a2@hangge.com"])
            //设置抄送人
            controller.setCcRecipients(["b1@hangge.com","b2@hangge.com"])
            //设置密送人
            controller.setBccRecipients(["c1@hangge.com","c2@hangge.com"])
             
            //添加图片附件
            var path = NSBundle.mainBundle().pathForResource("hangge.png", ofType: "")
            var myData = NSData(contentsOfFile: path!)
            controller.addAttachmentData(myData, mimeType: "image/png", fileName: "swift.png")
             
            //设置邮件正文内容(支持html)
            controller.setMessageBody("我是邮件正文", isHTML: false)
             
            //打开界面
            self.presentViewController(controller, animated: true, completion: nil)
        }else{
            println("本设备不能发送邮件")
        }
    }
     
    //发送邮件代理方法
    func mailComposeController(controller: MFMailComposeViewController!,
        didFinishWithResult result: MFMailComposeResult, error: NSError!) {
        controller.dismissViewControllerAnimated(true, completion: nil)
             
        switch result.value{
            case MFMailComposeResultSent.value:
                println("邮件已发送")
            case MFMailComposeResultCancelled.value:
                println("邮件已取消")
            case MFMailComposeResultSaved.value:
                println("邮件已保存")
            case MFMailComposeResultFailed.value:
                println("邮件发送失败")
            default:
                println("邮件没有发送")
                break
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

转载于:https://www.cnblogs.com/Free-Thinker/p/4843608.html

Swift - 邮件发送功能的实现相关推荐

  1. android 添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于jmail实现android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助gmail app客户端,缺点是必须使用gmail帐号 ...

  2. android 信息添加附件功能,Android实现带附件的邮件发送功能

    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号 ...

  3. Java技术:SpringBoot实现邮件发送功能

    邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...

  4. Spring Boot最新版集成邮件发送功能大全

    Spring Boot最新版集成邮件发送功能大全 前言 一.开启SMTP服务并获取授权码 二.创建Spring Boot项目 1.配置邮箱基本信息: 2.简单邮件发送: 3.发送带附件的邮件: 5.使 ...

  5. node.js发送html,利用Node.JS实现邮件发送功能

    第一步.配置篇 首先需要安装nodemailer库 npm install nodemailer//默认会安装最新的版本. 关于这个库的文档参见nodemailer 第二步.库的一些使用介绍 这个库使 ...

  6. 利用hutool实现邮件发送功能

    如何利用hutool工具包实现邮件发送功能呢? 1.首先引入hutool依赖 <dependency><groupId>cn.hutool</groupId>< ...

  7. python实现邮件发送功能

    用最简单的方法实现邮件发送功能,拒绝重复造轮子,提供工作效率. 目录 1.安装依赖 2.发送文本邮件 3.发送多人邮件 4.发送附件邮件 1.安装依赖 pip install yagmail 2.发送 ...

  8. Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用

    如果没有自建邮件服务器,直接结合网易.阿里邮箱可以非常简单方便的使用邮件发送功能. 注册前首先得保证自己有一个域名,阿里最好是在当前账户下有一个已注册的域名. 根据下方地址注册相应的账户信息,选择其中 ...

  9. NET开发邮件发送功能的全面教程(含邮件组件源码)(

    天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下. AD:2013云计算架构师峰会精彩课程曝光 ...

最新文章

  1. springBoot PUT请求接收不了参数的解决办法
  2. [分享]毕业了【其实不想毕业】
  3. c语言程序代码_10道C语言笔试模拟题,来看看你掌握的怎么样?
  4. Oracle数据库基础入门《二》Oracle内存结构
  5. 关于深度学习中GPU显存使用的介绍
  6. macOS下加载动态库dylib报code signature invalid错误的解决办法
  7. 长春学校计算机科学技术学院,长春大学计算机科学技术学院
  8. Hive过滤脏数据的一些经验
  9. sql主键_SQL主键
  10. 怎么判断子元素距离父元素顶部位置_css子元素如何相对父元素定位?
  11. Netty的并发编程实践3:CAS指令和原子类
  12. 理解Ruby的4种闭包:blocks, Procs, lambdas 和 Methods
  13. SeaWeedFS的特性
  14. matlab中测交流电压,间接测量交流电压有效值的方法与应用
  15. NVIDIA Jetson TK1学习与开发(四):一些细节问题
  16. 【Docker】Registry搭建私有仓库、证书认证、用户登录认证
  17. python中functools的partiaethod_Python中functools模块函数解析
  18. 【华为机考刷题】2022_6_14
  19. 医学统计学中差异性检验的检验方法选择
  20. php中或者符号,php中的或运算符号

热门文章

  1. (12) 需求征集 -- 序列管理、编号管理
  2. virus.win32.xorer病毒
  3. 定制控件消息处理函数
  4. python内嵌函数和闭包与java 匿名内部类_Java匿名内部类构造原理分析
  5. sql提取字符串中的一部分数据_学会这三招提取字符串中的数字不用愁
  6. selenium自动化测试-2.浏览器基本操作
  7. 萌新的Python练习实例100例(七)将一个列表的数据复制到另一个列表中
  8. clean,compile,build,install,package区别
  9. Reflexer Labs将于4月15日进行首次FLX代币分配
  10. 今日恐慌与贪婪指数为78 贪婪程度有所上升