Laragon v.2.2.2 中的 Mail() 函数 - 发送后编码错误
Mail() function in Laragon v.2.2.2 - Wrong encoding after sent
我正在使用 Laragon v. 2.2.2 - 开发环境
我尝试发送带有波兰语字符的邮件 "śćńółəśąśżćźó",
我还向邮件添加了正确的 headers "Content-type: text/html; charset=UTF-8" 和文件编码,
但在 sendmail 输出日志和 gmail 上,消息如下所示:
"L>A?L"AlL,ATL>A.L>LLA?LsAl".
Sendmail 输出日志:
17.03.31 16:02:58 ** --- MESSAGE BEGIN ---
17.03.31 16:02:58 ** To: ***@gmail.com
17.03.31 16:02:58 ** Subject: test
17.03.31 16:02:58 ** X-PHP-Originating-Script: 0:index.php
17.03.31 16:02:58 ** Content-type: text/html; charset=UTF-8
17.03.31 16:02:58 **
17.03.31 16:02:58 ** śćńółęśąśżćźó
17.03.31 16:02:58 ** --- MESSAGE END ---
17.03.31 16:02:59 >> Date: Fri, 31 Mar 2017 16:02:59 <EOL>
17.03.31 16:02:59 >> To: ***@gmail.com<EOL>
17.03.31 16:02:59 >> Subject: test<EOL>
17.03.31 16:02:59 >> X-PHP-Originating-Script: 0:index.php<EOL>
17.03.31 16:02:59 >> Content-type: text/html; charset=UTF-8<EOL>
17.03.31 16:02:59 >> <EOL>
17.03.31 16:02:59 >> L>A?L"AlL,ATL>A.L>LLA?LsAl<EOL>
17.03.31 16:02:59 >> .<EOL>
PHP代码:
<?php
mail('***@gmail.com', 'test', 'śćńółęśąśżćźó', "Content-type: text/html; charset=UTF-8");
?>
通过Laragon邮箱配置发送邮件(我用的是Gmail)
如何解决?
声明全部MIMEheaders包括声明8位编码。它应该允许您的 sendmail (SMTP) 服务器进行接收 SMTP 服务器所需的转换。
电子邮件 headers 中的非 ASCII 字符需要另一种特殊编码 (RFC2047)。
由于非常古老的传统,电子邮件默认只包含 7 位字符。
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit
问题已解决。 Laragon 的开发者为 sendmail 做了一个修补程序。现在编码工作正常。这是修补程序(最后 post )https://forum.laragon.org/topic/433/mail-function-trouble-with-encoding
我正在使用 Laragon v. 2.2.2 - 开发环境
我尝试发送带有波兰语字符的邮件 "śćńółəśąśżćźó", 我还向邮件添加了正确的 headers "Content-type: text/html; charset=UTF-8" 和文件编码, 但在 sendmail 输出日志和 gmail 上,消息如下所示: "L>A?L"AlL,ATL>A.L>LLA?LsAl".
Sendmail 输出日志:
17.03.31 16:02:58 ** --- MESSAGE BEGIN ---
17.03.31 16:02:58 ** To: ***@gmail.com
17.03.31 16:02:58 ** Subject: test
17.03.31 16:02:58 ** X-PHP-Originating-Script: 0:index.php
17.03.31 16:02:58 ** Content-type: text/html; charset=UTF-8
17.03.31 16:02:58 **
17.03.31 16:02:58 ** śćńółęśąśżćźó
17.03.31 16:02:58 ** --- MESSAGE END ---
17.03.31 16:02:59 >> Date: Fri, 31 Mar 2017 16:02:59 <EOL>
17.03.31 16:02:59 >> To: ***@gmail.com<EOL>
17.03.31 16:02:59 >> Subject: test<EOL>
17.03.31 16:02:59 >> X-PHP-Originating-Script: 0:index.php<EOL>
17.03.31 16:02:59 >> Content-type: text/html; charset=UTF-8<EOL>
17.03.31 16:02:59 >> <EOL>
17.03.31 16:02:59 >> L>A?L"AlL,ATL>A.L>LLA?LsAl<EOL>
17.03.31 16:02:59 >> .<EOL>
PHP代码:
<?php
mail('***@gmail.com', 'test', 'śćńółęśąśżćźó', "Content-type: text/html; charset=UTF-8");
?>
通过Laragon邮箱配置发送邮件(我用的是Gmail)
如何解决?
声明全部MIMEheaders包括声明8位编码。它应该允许您的 sendmail (SMTP) 服务器进行接收 SMTP 服务器所需的转换。
电子邮件 headers 中的非 ASCII 字符需要另一种特殊编码 (RFC2047)。
由于非常古老的传统,电子邮件默认只包含 7 位字符。
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit
问题已解决。 Laragon 的开发者为 sendmail 做了一个修补程序。现在编码工作正常。这是修补程序(最后 post )https://forum.laragon.org/topic/433/mail-function-trouble-with-encoding