PHP无法将邮件发送到webmail

时间:2013-05-06 17:28:33

标签: email php webmail

我在网站上有一个联系表格,如果你提交它会发送到webmail。 例如:

    $isi_pesan = $message;
    $additional_headers = "From: ".$email."" . "\r\n" . "Reply-To: $email";   
    $subject = 'Pesan untuk engineering.co.id';

    $to = 'info@engineering.co.id';
 // $to = 'dy_qie21@yahoo.com'; //this works

    if(mail($to, $subject, $isi_pesan, $additional_headers))
        echo '<div class="success-msg">Success !</div>';
    else
        echo '<div class="error-msg">Failed !</div>';

我得到的信息是“成功!”但我在收件箱webmail中什么都没有。如果$ to不是webmail,则PHP邮件可以正常工作。那么我需要更改哪些设置才能使邮件在webmail中正常工作?提前谢谢。

4 个答案:

答案 0 :(得分:3)

你看过SPAM文件夹了吗? 看一下这个PHP类

https://github.com/Synchro/PHPMailer

$mail = new PHPMailer;

$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->AddAddress('ellen@example.com');               // Name is optional
$mail->IsHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->Send()) {
   echo 'Message could not be sent.';
   echo 'Mailer Error: ' . $mail->ErrorInfo;
   exit;
}

echo 'Message has been sent';

答案 1 :(得分:3)

PHP本身并不传递邮件。它只是将其交给本地邮件传递系统。因此,请检查外发邮件服务器的日志。也许该电子邮件被拒绝为垃圾邮件。也许它因为灰名单等原因被推迟了......

用外行人的话来说,PHP的邮件()相当于走下街区并将信件放入邮箱。一旦字母在框中,PHP的工作就完成了,它将报告为真。然后邮局必须拿起信件,把它带到分拣工厂,然后发送(飞机?卡车?船?)。目的地的邮局必须接受送货,做更多的分拣,把信放入卡车,放在某人的邮箱等等......

在宏观方案中,PHP的mail()函数大约占交付邮件流程的0.1%,并且您已经证明它成功了。因此,开始分析其他99.9%,以找出问题所在。

答案 2 :(得分:2)

如果这是您的确切代码,那么您将覆盖第一个用第二个来解决的问题:

$to = 'info@engineering.co.id';
$to = 'dy_qie21@yahoo.com'; //this works

如果您想发送给两者,那么您需要执行以下操作:

$to = 'info@engineering.co.id, dy_giel21@yahoo.com';

答案 3 :(得分:0)

在Microsoft Outlook中配置您的网络邮件。现在您将收到联系表格中的邮件。 它对我有用。 ; P