蘋果原生方式調用發送郵件會調用系統郵箱,經用戶同意后才允許發送,也是本著用戶至上的原則,但彈框體驗較差,用戶多數懶得操作,才決定繞過用戶直接發送給信息反饋給自己公司
使用的是第三方SKPSMTPMessage,簡單好用。。
里面有mrc時代的開發產物,需要手動設置,如圖允許mrc
Snip20170207_2.png
導入代碼
Snip20170207_3.png
橋接引入頭文件
#import "SKPSMTPMessage.h"
#import “NSData+Base64Additions.h”
遵守協議
SKPSMTPMessageDelegate
代碼實現內容:
特別注意:以qq郵箱為例,在填寫郵箱密碼的位置填寫的不再是原有密碼,而是在你開啟郵箱的smtp時給你提供的授權碼,也算是在對密碼的一種保護 ,如下圖
屏幕快照 2017-02-09 上午11.39.33.png
let emailMessage = SKPSMTPMessage()
emailMessage.delegate = self
emailMessage.fromEmail = "發送郵箱"
emailMessage.toEmail = "接受郵箱"
emailMessage.login = "郵箱帳號"
emailMessage.pass = "郵箱密碼" //以qq為例,填寫授權碼
emailMessage.relayHost = "smtp.qq.com" //網易:smtp.163.com
emailMessage.requiresAuth = true
emailMessage.wantsSecure = true
emailMessage.subject = "這是郵件主題"
let messageContent = "哈哈 我是ddd,這是郵件內容"
let messagePart = [kSKPSMTPPartContentTypeKey: "text/plain", kSKPSMTPPartMessageKey: messageContent, kSKPSMTPPartContentTransferEncodingKey: "8bit"]
emailMessage.parts = [messagePart]
emailMessage.send()
//遵循協議
extension ViewController:SKPSMTPMessageDelegate{
func messageSent(_ message: SKPSMTPMessage!) {
print("____發送成功____\(message)_____")
}
func messageFailed(_ message: SKPSMTPMessage!, error: Error!) {
print("____發送失敗____\(message)___報錯的信息____\(error)____")
}
}
command b編譯,可能會出現如下報錯
Snip20170207_4.png
添加#import <Foundation/Foundation.h>即可解決
Snip20170207_5.png
到此發送郵件成功