2017-03-31 40 views
1

我使用Laragon v 2.2.2 - 开发环境邮件()函数Laragon v.2.2.2 - 错误的编码后发送

我试图与波兰人物“śćńółęśąśżćźó”发送邮件, 我还添加了正确的标头“Content-type:text/html; charset = UTF-8”和文件编码到邮件, 但在sendmail输出日志和gmail上,消息看起来像: “L> L“AlL,ATL> AL> LLA?LsAl”

Sendmail out把日志:

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代码:(我使用Gmail)

如何解决

<?php 
    mail('***@gmail.com', 'test', 'śćńółęśąśżćźó', "Content-type: text/html; charset=UTF-8"); 
?> 

邮件通过电子邮件Laragon发送的配置?

回答

0

声明全部MIME标题包括声明的8位编码。它应该允许您的sendmail(SMTP)服务器执行接收SMTP服务器所需的转换。
电子邮件标题中的非ASCII字符需要另一种特殊编码(RFC2047)。
由于非常古老的传统,电子邮件默认只包含7位字符。

MIME-Version: 1.0 
Content-Type: text/html; charset=utf-8 
Content-Transfer-Encoding: 8bit 
+0

WordPress的也使用这个。编码仍然是错误的。 :/ – Savander

+0

您能否以“原始”格式包含收到的电子邮件? [所有标头也] – AnFi

+0

其实,问题已解决。 Laragon的开发人员为sendmail做了一个修补程序。现在编码工作正常。这是修补程序(在最后一篇文章中) https://forum.laragon.org/topic/433/mail-function-trouble-with-encoding – Savander