我正在使用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
我无法看到代码中的内容看起来是诚实的。
答案 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";