Swift - 邮件发送功能的实现

使用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(["[email protected]","[email protected]"])

            //设置抄送人

            controller.setCcRecipients(["[email protected]","[email protected]"])

            //设置密送人

            controller.setBccRecipients(["[email protected]","[email protected]"])

            

            //添加图片附件

            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()

    }

}

时间: 2024-10-10 08:47:48

Swift - 邮件发送功能的实现的相关文章

redmine邮件发送功能配置详解

redmine的邮件发送功能还是很有用的. 像项目有更新啦,任务分配啦,都能邮件发送的相关责任人. 我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了. 查了网上的资料,都是讲修改下配置文件就可以了,他们没错,只是没有讲全. 下面是我整理的一个redmine邮件发送功能设置的一个完整流程. 1. sendmail安装与检查 linux机器上安装的redmine要能发送邮件,先得是本机的sendmail功能是正常的. 查看sendmail进程是否已正常启动: $ ps au

用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇

在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还是很耐心的. 最终结论,是由于MailKit发送了两次EHLO命令,查看了MailKit源码后竟然发现,里面写了硬编码: if (host != "smtp.strato.de" && host != "smtp.sina.com") Ehlo (can

邮件发送功能开发

作为一名.Net开发,"邮件发送"功能的开发和使用是必须要掌握的,因为这个功能作为"消息推送"的一种手段经常出现在各种.Net系统中,所以本文将对.Net平台下的"邮件发送",做一个细致的分析! 一.who需要邮件功能 1.服务提供方:需提供邮件收发客户端或Web服务.如:QQ邮箱.GMail邮箱.126.163等知名邮件服务提供商.注:如果你使用的第三方不知名邮件服务商提供的邮件收发服务,通过其发出的邮件,可能会被其他知名邮件服务提供商的STM

ThinkPHP中邮件发送功能

初次使用thinkphp框架,开发一个邮件发送功能,由于对框架不熟悉折腾了几个小时终于成功了,以下是代码记录. 此函数只能在ThinkPHP中使用且需要phpmailer扩展的支持:phpmail的下载地址:https://code.google.com/a/apache-extras.org/p/phpmailer 将phpmailer解压后放置扩展放置到第三方类库扩展目录下: ThinkPHP/Extend/Vendor/文件夹下即可,并使用vendor方法来导入.更详细介绍参考:http:

C#实现简单的邮件发送功能

唉,最近要做一个项目,里面需要实现邮件发送功能.在网络上也找一些看,自己也随便写下.也当做是给自己复习下吧,如有不对之处还请大家指出.谢谢! 首先我是创建一个实体对象Model (EmailParameterSet) : 1 public class EmailParameterSet 2 { 3 /// <summary> 4 /// 收件人的邮件地址 5 /// </summary> 6 public string ConsigneeAddress { get; set; }

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

ref: http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html 今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         邮件发送相关.NET类库 3)         介绍我开发的一个发送邮件的小组件(MailHelper) 4)         MailHelper组

xampp 和thinkphp 建一个本地站并实现邮件发送功能

一.xampp的安装使用 1.首先看下什么是xampp,想要建站的小伙伴肯定都知道,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建 XAMPP 软件站集成软件包. 它可以在Windows.Linux.Solaris.Mac OS X 等多种操作系统下安装使用 2.需要什么版本到官网上下载:xampp下载 3.安装很简单,傻瓜式安装,感觉mysql选项可以去掉,自己安装一个,具体安装看这个:mysql安装,另外路径建议只改动盘符,保留后缀路径 4.安装好的目录如下 5.

linux 配置邮件发送功能

1.mutt+msmtp的安装 默认情况下smokeping发送邮件使用sendmail,但是sendmail配置起来真心不是一般的麻烦,而且也没有必要,完全大材小用了,所以我就想用mutt+msmtp的方案来发送告警邮件. 首先安装mutt和msmtp这两个软件. 如果是在在线安装,那么直接apt-get install就好了,会自动帮助我们安装关联包. 如果是在离线环境下,我们可以先在有线环境下安装.然后再将用到的安装包拷贝的离线环境下安装(这是因为使用apt-get install会将所有

Spring Boot 2.0 图文教程 | 集成邮件发送功能

文章首发自个人微信公众号: 小哈学Java 个人网站: https://www.exception.site/springboot/spring-boots-send-mail 大家好,后续会间断地奉上一些 Spring Boot 2.x 相关的博文,包括 Spring Boot 2.x 教程和 Spring Boot 2.x 新特性教程相关,如 WebFlux 等.还有自定义 Starter 组件的进阶教程,比如:如何封装一个自定义图床 Starter 启动器(支持上传到服务器内部,阿里 OS