 iOS 使用SKPSMTPMessage静默发送邮件

苹果原生方式调用发送邮件会调用系统邮箱,经用户同意后才允许发送,也是本着用户至上的原则,但弹框体验较差,用户多数懒得操作,才决定绕过用户直接发送给信息反馈给自己公司

使用的是第三方SKPSMTPMessage,简单好用。。

里面有mrc时代的开发产物,需要手动设置,如图允许mrc

 iOS 使用SKPSMTPMessage静默发送邮件_第1张图片
Snip20170207_2.png

导入代码

 iOS 使用SKPSMTPMessage静默发送邮件_第2张图片
Snip20170207_3.png

桥接引入头文件
#import "SKPSMTPMessage.h"
#import “NSData+Base64Additions.h”

遵守协议

SKPSMTPMessageDelegate

代码实现内容:
特别注意:以qq邮箱为例,在填写邮箱密码的位置填写的不再是原有密码,而是在你开启邮箱的smtp时给你提供的授权码,也算是在对密码的一种保护 ,如下图

 iOS 使用SKPSMTPMessage静默发送邮件_第3张图片
屏幕快照 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编译,可能会出现如下报错

 iOS 使用SKPSMTPMessage静默发送邮件_第4张图片
Snip20170207_4.png

添加#import 即可解决

 iOS 使用SKPSMTPMessage静默发送邮件_第5张图片
Snip20170207_5.png

到此发送邮件成功

你可能感兴趣的:( iOS 使用SKPSMTPMessage静默发送邮件)