美文网首页
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