任何电子邮件末尾都有奇怪的字符:PHP MAIL

时间:2013-05-03 22:29:55

标签: php email

我正在使用PHP MAIL功能,由于某种原因,它发送的每封电子邮件都有一些奇怪的东西;

�����������������

这是在我说的任何电子邮件的最后,我不太确定为什么会发生这种情况。

        $from = 'From: support@phycraft.co.uk';
        $to = $user_email; // Send email to our user  
        $subject = 'PhyCraft Support Ticket :: Closed :: ' . $t_subject; // Give the email a subject
        $message = ' 

Hello '. $username.'.

Your support ticket '.$t_subject.' has been closed due to being inactive for 48 hours. 

If you still need help with the ticket please reopen the ticket by replying to it.

~PhyCraft 

';

        $headers = 'From:support@phycraft.co.uk' . "\r\n"; // Set from headers 
        mail($to, $subject, $message, $from); // Send our email

我无法看到代码中的内容看起来是诚实的。

2 个答案:

答案 0 :(得分:0)

php的mail()函数的大多数问题都是MTA的问题,而不是PHP本身。我之前从未听说过这个问题,更有可能是MTA问题。

除了PHP代码之外,您没有提供任何有用的信息。这是什么操作系统(MSWindows上的mail()与其他所有人都非常不同)。你控制服务器了吗? MTA配置了什么?您是否尝试过从命令行发送电子邮件?

最后的额外内容看起来像HTML - 这个字节是字节中的电子邮件或您在邮件客户端中看到的内容?

顺便说一句,明确将“\ r \ n”放在标题的 end 上并不是一个好主意 - 但您似乎忘记将它们添加为参数。此外,您在“发件人:”和电子邮件地址之间缺少一个空格。

答案 1 :(得分:0)

您可以使用以下$标头(仅限\ n)来尝试。

$headers  = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/plain; charset = \"ISO-8859-1\";\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "From: support@phycraft.co.uk\n"; 
$headers .= "\n";

mail($to, $subject, $message, $headers); 

和2.尝试不用

$headers .= "Content-Transfer-Encoding: 8bit\n";