zoukankan      html  css  js  c++  java
  • Swift 发送邮件和发短信

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

            }

        }

        

  • 相关阅读:
    Vue 静态资源文件下载 以pdf为例
    高德地图POI搜索
    矩阵转置(二维列表行列互换)
    列表动态填加元素
    关于判断值为None的处理
    第2章 小程序项目结构配置
    Python 基础编码风格
    Visual Studio — 模块计算机类型“x64”与目标计算机类型“x86”冲突
    Visual Studio — 无法解析的外部符号的几种可能
    Visual Studio — 包含目录、附加包含目录、库目录、附加库目录、附加依赖项之详解
  • 原文地址:https://www.cnblogs.com/ZGSmile/p/5694292.html
Copyright © 2011-2022 走看看