【发布时间】:2018-04-18 12:21:00
【问题描述】:
我正在使用 phpmailer 发送月度报告。
它包括€ 符号。因此我需要将编码设置为 utf-8。 我在这里遇到了问题。
没有这样的编码:
$mail->addStringAttachment($csvstring, $fileName);
邮件已发送,但附件中没有显示 € 符号
当我尝试添加编码时:
$mail->addStringAttachment($csvstring, $fileName, "utf-8", "text/csv");
邮件已发送,但正文和附件不存在。 我试着查了一下,但文档似乎很少。
我错过了显而易见的事情吗?
【问题讨论】:
-
刚刚浏览了源代码,我必须说 PHPmailer 看起来真的很尴尬,你可以考虑换一个。但是,看看你的第三个参数应该是什么:
https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php#L62,所以“utf-8”不是预期的。作为第四个参数,您可能想尝试"text/html; charset=utf-8"。这只是实验。如果没有其他帮助,我想我会对 PHPMailer 的工作方式进行逆向工程。 -
有大量的文档,链接自项目主页,隐藏在“文档”标题下。 The docs on addStringAttachment 非常清楚在添加附件时应如何指定内容传输编码,它与任何其他库中几乎相同 - 因为它们都是相同的东西。
-
不是每个人每天都使用 PHPMailer...所以我宁愿不要被我的鼻子咬。不过,我还是要感谢您提供的有用链接。