引用的可打印MIME邮件中的CRLF

时间:2018-06-13 12:59:35

标签: php smtp newline mime quoted-printable

我有一个多部分MIME消息,其中一部分看起来像

------=_Part_901_990681075.1528833507
Content-Disposition: attachment; filename="metadata.txt"
Content-ID: 3314a2d3-6092-48c3-93d9-a45648b6582b@localhost
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

version: 1.0=0Aid: 13848078-9bc3-4ec1-8cb0-3ee07d74f1cb=0Auser: givenName=
=3DJohn; middleName=3DJacob; surname=3DDoe; dateOfBirth=3D=0A=3D1970-01-01;=
gender=3DM; postalCode=3D12345

但是收件人说这是格式错误的元数据部分,因为=0A应该替换为真正的CRLF。

我知道它代表了quoted-printable编码的CRLF,但这不是收件人所期望的。

要创建元数据部分,我使用了PHP代码:

$sMetadata = "version: 1.0
id: $sTrancasctionId
user: givenName=$sUserFirstName; middleName=$sUserMiddleName; surname=$sUserLastName; dateOfBirth=
=$sUSerDOB; gender=$sUserGender; postalCode=$sUserPostalCode";

然后我使用现有的MailSo框架将其添加到现有的消息对象中。

有关此问题的任何提示?

1 个答案:

答案 0 :(得分:2)

如评论中所述, test : function(req,res){ var customerModel = require('../model/customer'); customerModel.getuser('0001', function(mobile_phone){ console.log("return from model_user = " + mobile_phone); }); }, 仅代表CRLF的换行(LF)部分。所以代码很可能存储在Unix新行中,只包含LF,而MIME表示则需要CRLF。

=0A行之后直接使用此命令,您可以将所有换行符转换为CRLF:

$sMetadata