0

好吧,我正在使用 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

我看不出代码中的哪些内容看起来很诚实。

4

2 回答 2

0

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

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

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

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

于 2013-05-03T22:43:46.423 回答
0

您可以尝试使用以下 $headers (仅 \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";
于 2013-05-03T23:16:50.393 回答