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

        }

    }

    

posted @ 2016-07-22 10:39  光光96  阅读(1230)  评论(0编辑  收藏  举报