MFMailComposeViewController
- 系統(tǒng)提供的類
- 使用系統(tǒng)郵件來(lái)實(shí)現(xiàn)發(fā)送郵件
企業(yè)微信截圖_9a41540d-fdd0-43ec-9920-00b212f08d35.png
- 項(xiàng)目中先導(dǎo)入MessageUI.framework
- 先判斷是否能發(fā)送郵件
if !MFMailComposeViewController.canSendMail() {
//不支持發(fā)送郵件
}
else {
//支持發(fā)送郵件
}
- 調(diào)起系統(tǒng)發(fā)送郵件界面
let mail = MFMailComposeViewController()
mail.navigationBar.tintColor = UIColor.blue //導(dǎo)航顏色
mail.setToRecipients(["123456789@qq.com"]) //設(shè)置收件地址
mail.setCcRecipients(["123456789@qq.com"]) //添加抄送
mail.setBccRecipients(["123456789@qq.com"]) //秘密抄送
mail.mailComposeDelegate = self //代理
mail.setSubject("郵件標(biāo)題")
//發(fā)送文字
mail.setMessageBody("文字內(nèi)容", isHTML: false) //郵件主體內(nèi)容
//發(fā)送圖片
let imageData: NSData = UIImagePNGRepresentation(UIImage(named: "圖片名字")!)! as NSData
mail.addAttachmentData(imageData as Data, mimeType: "", fileName: "圖片名字.png")
present(mail, animated: true, completion: nil)
- 代理方法
1- 遵循:MFMailComposeViewControllerDelegate
2- 設(shè)置代理:mail.mailComposeDelegate = self
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
if result == MFMailComposeResult.sent {
//發(fā)送成功
}
else if result == MFMailComposeResult.cancelled {
//取消發(fā)送
}
else if result == MFMailComposeResult.failed {
//發(fā)送失敗
}
else {
//已保存
}
dismiss(animated: true, completion: nil)
}
測(cè)試
在測(cè)試之前,需要先配置一下測(cè)試機(jī)上的系統(tǒng)郵件恋沃。(以iOS 12為例)
設(shè)置 -> 密碼與賬號(hào) -> 添加賬號(hào)
在網(wǎng)頁(yè)登錄qq郵箱,設(shè)置->賬戶
-
最后可以拿到
授權(quán)碼
賬號(hào).png
開(kāi)啟IMAP.png
驗(yàn)證密保.png
授權(quán)碼.png -
在iPhone上的添加自己的郵箱賬號(hào)
設(shè)置.png
賬號(hào).png
添加.png
填寫(xiě)授權(quán)碼.png -
將獲取到的
授權(quán)碼
,填寫(xiě)在密碼框中射赛。然后點(diǎn)擊下一步谭贪,即可添加入郵箱賬號(hào)师幕。
手機(jī)郵箱.png -
最后在郵件中,可以看到你添加的郵箱賬號(hào)中捆。
企業(yè)微信截圖_ac20a22d-96a9-49bb-8415-9de6390a6168.png 這樣就可以進(jìn)行測(cè)試了。