美文网首页
iOS 使用 skpsmtpmessage 发送邮件时,标题为?

iOS 使用 skpsmtpmessage 发送邮件时,标题为?

作者: Happy晓哥 | 来源:发表于2019-12-18 12:27 被阅读0次

首先感谢作者的无私奉献! 仓库地址: https://github.com/jetseven/skpsmtpmessage

作者是个老外,所以没有考虑中文的问题,所以使用官方demo发送邮件时,邮件标题是乱码???

解决方法是:
Subject直接传入了中文内容,不符合邮件MIME规范。
想要编码相应的文字,只需要按照以下格式:
=?charset?encoding?encoded text?=
encoding有两个可选值:Q和B,前者表示QP编码(Quoted-printable),后者为BASE64编码。

参考方法:https://www.cnblogs.com/kanzume/p/4614518.html

我们选择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];
}

相关文章

网友评论

      本文标题:iOS 使用 skpsmtpmessage 发送邮件时,标题为?

      本文链接:https://www.haomeiwen.com/subject/ruzynctx.html