多个php电子邮件问题

时间:2013-11-14 19:15:54

标签: php email

对于我的项目,我必须创建一个发送两封电子邮件的功能。一个给顾客,另一个给卖家。这两封电子邮件都有不同的内容。

我使用标准的PHP邮件功能编写了这两个函数,如下所示。

            $to      = "xxxx@xxxx.com";
    $subject = 'xxxx';
    $message =  "hello"  
    $headers  .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    mail($to, $subject, $message, $headers);

现在,在我自己公司的网络服务器上测试系统时,似乎发送和接收了两封电子邮件。但是,当我将同一系统迁移到外部服务器时。只发送一封电子邮件。主要是堆栈中的第一封电子邮件。

虽然我怀疑这个问题与后来的服务器配置有关,但我想知道我应该去哪里调试这个问题。

1 个答案:

答案 0 :(得分:1)

您的“已发布”代码中有一些内容丢失了。

$message = "hello"末尾缺少一个分号(除非是错字/粘贴错误?)和第一个$headers

中的一个点

此外,没有From:标头属性肯定会导致发送电子邮件并被视为垃圾邮件。

修复了这些问题并添加了额外的标题信息后,以下代码工作并没有在我的垃圾邮件中结束,但是INBOX成功了。

<?php
$to      = "xxxx@xxxx.com";
$email = "email@example.com";
$subject = 'xxxx';
$message =  "hello";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

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

?>

或成功回复消息:

<?php
$to      = "xxxx@xxxx.com";
$email = "email@example.com";
$subject = 'xxxx';
$message =  "hello";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

if(mail($to, $subject, $message, $headers))
{
echo "Message sent.";
}

else{
echo "Something went wrong.";
}

?>

访问PHP.net网站,了解有关mail()header()功能的更多信息。