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

        }

    }
相關文章
相關標籤/搜索