3

我在网站上有一个联系表格,如果您提交,它将发送到 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>';

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

4

4 回答 4

3

Have you looked in the SPAM folder? Take a look to this PHP class

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';
于 2013-05-06T17:35:36.560 回答
3

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

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

总的来说,PHP 的 mail() 函数完成了大约 0.1% 的邮件递送过程,您已经证明它是成功的。因此,开始分析其他 99.9% 以找出问题所在。

于 2013-05-06T17:36:31.560 回答
2

If that is your exact code, then you're overwriting the first to address with the second here:

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

If you want to send to both, then you need to do something like:

$to = 'info@engineering.co.id, dy_giel21@yahoo.com';
于 2013-05-06T17:35:22.023 回答
0

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

于 2016-06-18T09:29:14.087 回答