// 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")

}

}

最新文章

  1. 如何在Android中实现全屏,去掉标题栏效果
  2. 【原创】android内存管理-内存泄漏原因
  3. ios 关于UIView 的multipleTouchEnabled 和 exclusiveTouch
  4. 浅谈Entity Framework 增删改查和事务操作
  5. AngularJS Best Practices: ngRoute
  6. eclipse&android的环境搭建
  7. [转]Java程序员们最常犯的10个错误
  8. ExtJs之Ext.getCmp
  9. Android缓存技术
  10. hdu1521:排列组合---指数型母函数
  11. iOS开发获取缓存文件的大小并清除缓存
  12. while循环的基本用法
  13. 《SpringMVC从入门到放肆》二、SpringMVC的执行流程及默认配置
  14. anujs1.4.0发布
  15. Mockito-简单使用使用
  16. Linux c读取系统内存使用信息
  17. PTA 堆栈操作合法性(20 分)
  18. 64位系统VBS调用32位COM组件
  19. gulp学习笔记-怎样做一个gulp-demo
  20. Driving proportional valves from microcontroller

热门文章

  1. nginx搭建mp4流服务器
  2. Servlet3.0异步请求
  3. Springcloud/Springboot项目绑定域名,使用Nginx配置Https
  4. pycharm社区版创建django项目(Windows 8.1)
  5. ANDROID教程目录
  6. SSH密钥登陆免密码方法
  7. canvas实现鼠标拖拽矩形移动改变大小
  8. javaScript tips —— 标签上的data属性
  9. 移动tomcat ,eclipse启动报错原因
  10. 1-25-循环控制符break、continue和函数详解