iOS 使用 skpsmtpmessage 发送邮件时,标题为?
2019-12-18 本文已影响0人
Happy晓哥
首先感谢作者的无私奉献! 仓库地址: https://github.com/jetseven/skpsmtpmessage
作者是个老外,所以没有考虑中文的问题,所以使用官方demo发送邮件时,邮件标题是乱码???
解决方法是:
Subject直接传入了中文内容,不符合邮件MIME规范。
想要编码相应的文字,只需要按照以下格式:
=?charset?encoding?encoded text?=
encoding有两个可选值:Q和B,前者表示QP编码(Quoted-printable),后者为BASE64编码。
我们选择BASE64作为编码方案,处理一下Subject:
- (IBAction)sendMessage:(id)sender {
SKPSMTPMessage *emailMessage = [[SKPSMTPMessage alloc] init];
emailMessage.subject = [NSString stringWithFormat:@"=?UTF-8?B?%@?=",[self base64EncodeString:@"这里传入中文标题"]];
}
- (NSString *)base64EncodeString:(NSString *)string{
//1、先转换成二进制数据
NSData *data =[string dataUsingEncoding:NSUTF8StringEncoding];
//2、对二进制数据进行base64编码,完成后返回字符串
return [data base64EncodedStringWithOptions:0];
}