// MARK: - Action

// MARK: compose mail 发送邮件

@IBAction func composeMail(sender: AnyObject) {

// 判断能否发送邮件

guard MFMailComposeViewController.canSendMail() else {

print("不能发送邮件")

return

}

let mailVC = MFMailComposeViewController()

mailVC.mailComposeDelegate = self // 代理

mailVC.setSubject("阳君") // 主题

mailVC.setToRecipients(["937447974@qq.com"]) // 收件人

mailVC.setCcRecipients(["CcRecipients@qq.com"]) // 抄送

mailVC.setBccRecipients(["bccRecipients@qq.com"]) // 密送

mailVC.setMessageBody("相关内容", isHTML: false) // 内容,允许使用html内容

if let image = UIImage(named: "qq") {

if let data = UIImagePNGRepresentation(image) {

// 添加文件

mailVC.addAttachmentData(data, mimeType: "image/png", fileName: "qq")

}

}

self.presentViewController(mailVC, animated: true, completion: nil)

}

// MARK: compose message 发送短信

@IBAction func composeMessage(sender: AnyObject) {

guard MFMessageComposeViewController.canSendText() else {

print("不能发送短信")

return

}

let messageVC = MFMessageComposeViewController()

messageVC.messageComposeDelegate = self // 代理

messageVC.recipients = ["18511056826"] // 收件人

messageVC.body = "短信内容" // 内容

// 发送主题

if MFMessageComposeViewController.canSendSubject() {

messageVC.subject = "阳君"

}

// 发送附件

if MFMessageComposeViewController.canSendAttachments() {

// 路径添加

if let path = NSBundle.mainBundle().pathForResource("Info", ofType: "plist") {

messageVC.addAttachmentURL(NSURL(fileURLWithPath: path), withAlternateFilename: "Info.plist")

}

// NSData添加

if MFMessageComposeViewController.isSupportedAttachmentUTI("public.png") {

// See [Uniform Type Identifiers Reference](https://developer.apple.com/library/ios/documentation/Miscellaneous/Reference/UTIRef/Introduction/Introduction.html)

if let image = UIImage(named: "qq") {

if let data = UIImagePNGRepresentation(image) {

// 添加文件

messageVC.addAttachmentData(data, typeIdentifier: "public.png", filename: "qq.png")

}

}

}

}

// messageVC.disableUserAttachments() // 禁用添加附件按钮

self.presentViewController(messageVC, animated: true, completion: nil)

}

// MARK: -  MFMailComposeViewControllerDelegate

func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {

// 关闭MFMailComposeViewController

controller.dismissViewControllerAnimated(true, completion: nil)

guard error == nil else { // 错误拦截

print(error)

return

}

switch result { // 发送状态

case MFMailComposeResultCancelled:

print("Result: Mail sending canceled") // 删除草稿

case MFMailComposeResultSaved: // 存储草稿

print("Result: Mail saved")

case MFMailComposeResultSent: // 发送成功

print("Result: Mail sent")

case MFMailComposeResultFailed: // 发送失败

print("Result: Mail sending failed")

default:// 其他

print("Result: Mail not sent")

}

}

// MARK: - MFMessageComposeViewControllerDelegate

func messageComposeViewController(controller: MFMessageComposeViewController, didFinishWithResult result: MessageComposeResult) {

print(controller.attachments) // 所有附件

// 关闭MFMessageComposeViewController

controller.dismissViewControllerAnimated(true, completion: nil)

switch result { // 发送状态

case MessageComposeResultCancelled:

print("Result: Mail sending cancelled") // 取消发送

case MessageComposeResultSent: // 发送成功

print("Result: Mail sent")

case MessageComposeResultFailed: // 发送失败

print("Result: Message sending failed")

default:// 其他

print("Result: Message not sent")

}

}

Swift 发送邮件和发短信的更多相关文章

  1. 打电话,发短信,发邮件,app跳转

    1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...

  2. iOS中如何切换到发短信、打电话、发邮件

    我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备 ...

  3. 打电话、发短信、web以及发邮件

    #import "ViewController.h" #import <MessageUI/MessageUI.h> //导入信息UI库 @interface View ...

  4. IOS 开发,调用打电话,发短信,打开网址

    IOS 开发,调用打电话,发短信,打开网址   1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString: ...

  5. html页面通过特殊链接:打电话,发短信,发邮件详细教程

    采用url href链接的方式,实现在Safari  ios,Android 浏览器,webos浏览器,塞班浏览器,IE,Operamini等主流浏览器,进行拨打电话功能. 1. 拨打电话 在电话号码 ...

  6. 移动设备wap手机网页html5通过特殊链接:打电话,发短信,发邮件详细教程

    如果需要在移动浏览器中实现拨打电话,调用sms发短信,发送email等功能,移动手机WEB页面(HTML5)Javascript提供的接口是一个好办法. 采用url href链接的方式,实现在Safa ...

  7. IOS,发短信,发邮件,打电话

    今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点.1.1.发短信(1)——URL // ...

  8. 今天工作遇到要发短信(ios)的功能,于是随手记录了一下

    ios中发送短信有两种 1.程序外调用系统短信 2.程序内调用系统发短信 第一种比较简单,直接调用url就可以了 oc下的代码为 [[UIApplication sharedApplication] ...

  9. iOS - 打电话, 发短信

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...

随机推荐

  1. [翻译]理解CSS模块方法

    在这个前端发展日新月异的世界,能够找到有所影响的概念相当困难,而将其准确无误的传达,让人们愿意尝试,更是难上加难. 拿CSS来看,在我们写CSS时,工具侧最大的变化,也就是CSS处理器的使用,如:可能 ...

  2. 爬虫之动态HTML处理(Selenium与PhantomJS )动态页面模拟点击

    动态页面模拟点击 #!/usr/bin/env python # -*- coding:utf-8 -*- # python的测试模块 import unittest from selenium im ...

  3. 网络软中断与NAPI函数分析

    网卡只有rx硬中断,外设通过中断控制器向CPU发出有数据包来临的通知, 而没有tx硬中断,因为发送数据包是cpu向外设发出的命令. ixgbe驱动的rx软中断和tx软中断在同一个CPU上处理. htt ...

  4. RocketMQ 自己的整理和理解

    每个人的想法不同, RocketMQ 介绍的时候就说 是阿里从他们使用的上 解耦出来 近一步简化 便捷的 目的当然是 让其能快速入手和开发 如果不是在项目设计层面上 只是使用的话 从Git上下载该项目 ...

  5. mysql数据库优化课程---16、mysql慢查询和优化表空间

    mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...

  6. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  7. C# 过滤HTML,脚本,数据库关键字,特殊字符

    /// <summary> /// 过滤标记 /// </summary> /// <param name="NoHTML">包括HTML,脚本 ...

  8. Android------底部导航栏BottomNavigationBar

    Android 的底部导航栏 BottomNavigationBar 由Google官方Material design中增加的. Android底部导航栏的实现方式特别多,例如TabHost,TabL ...

  9. OpenCL双边滤波实现美颜功能

    OpenCL是一个并行异构计算的框架,包括intel,AMD,英伟达等等许多厂家都有对它的支持,不过英伟达只到1.2版本,主要发展自己的CUDA去了.虽然没有用过CUDA,但个人感觉CUDA比Open ...

  10. [nodejs]npm国内npm安装nodejs modules终极解决方案

    此方案用于设置代理和修改镜像地址都不能解决问题使用 1.npm root 确认node模块的根文件夹,全局要加-g. osx同样是此命令,先清除缓存. npm cache clean C:\Users ...