我有一个在网站上的联系方式,如果你提交它将发送到网络邮件。例子:
$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不是webmail,PHP邮件就可以工作。那么,我必须更改什么设置才能使邮件在webmail中工作?提前谢谢。
你看过垃圾邮件文件夹了吗?看看这个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';
PHP本身并不传递邮件。它只是把它交给当地的邮件递送系统。因此,请检查您的发送邮件服务器的日志。也许这封邮件被当作垃圾邮件拒绝了。也许是因为greylisting等原因被推迟了。。。
用外行的话说,PHP的mail()相当于走过街区,把一封信扔进邮箱。一旦这封信放进盒子里,PHP的工作就完成了,它将报告true。然后邮局必须来取信,把它送到分拣厂,然后再把它寄出去(飞机?卡车?船?)。目的地的邮局必须接受投递,做更多的分拣,把信放进卡车,投进某人的邮箱,等等。。。
在总体方案中,PHP的mail()函数完成了大约0.1%的邮件传递过程,您已经证明它是成功的。因此,开始分析其他99.9%的问题所在。
如果这是您的确切代码,那么您将在此处用第二个地址覆盖第一个to地址:
$to = 'info@engineering.co.id';
$to = 'dy_qie21@yahoo.com'; //this works
如果要同时向这两个用户发送,则需要执行以下操作:
$to = 'info@engineering.co.id, dy_giel21@yahoo.com';