我有一个UTF-8编码的XML文件,通过电子邮件发送附件.当电子邮件收件人打开电子邮件并保存附件时,XML文件不再是UTF-8(而是报告ANSI编码).在这种情况下,收件人使用Microsoft Outlook,如果它很重要.
我在一个我不能依赖合适的MIME库的可用性的环境中编程,所以我需要了解我的错误.
在通过电子邮件发送XML文件之前,在服务器上创建它之后,我可以看到使用Linux文件命令它是一个UTF-8文件.独立于这一点,XML也有一个版本头<?xml version="1.0" encoding="UTF-8"?>
(这不是我的问题真的很重要,但我包括它的完整性).我很确定我的代码通过电子邮件发送文件是问题所在,但我不确定是否采用"正确"方式.
我发送的标题是:
"Mime-Version" "1.0"
"Content-Type" "multipart/mixed; boundary="__==NAHDHDH2.28ABSDJxjhkjhsdkjhd___"\n\n"
Run Code Online (Sandbox Code Playgroud)
电子邮件的正文是:
--__==NAHDHDH2.28ABSDJxjhkjhsdkjhd___\n
Content-Type: text/plain; charset="utf-8"; format=flowed\n
Content-Transfer-Encoding: 7bit\n\n
Please find attached the data file generated
--__==NAHDHDH2.28ABSDJxjhkjhsdkjhd___\n
Content-Type: text/plain; charset="utf-8"\n
Content-Disposition: attachment; filename="My_File_Name"\n\n
XML FILE CONTENTS GO HERE
--__==NAHDHDH2.28ABSDJxjhkjhsdkjhd___--\n
Run Code Online (Sandbox Code Playgroud)
问题:
quoted-printable
,8bit
还是其他类型的
Content-Transfer-Encoding
?我已经尝试了所有这些,但它没有改变结果.Content-Type: text/plain
对于XML附件是否正确?