[英]PHP mail() with From: header prevents delivery
首先,第一件事...我知道邮件的传递能力受数百个因素影响,因此,绝对不能确定是由某件事引起的。 (我不希望这样。)
我的问题是邮件服务器阻塞/ From:
标题不同的邮件是否正常/是否正常。 我的联系表单处理程序使用此格式,以便收件人可以回复发件人(下面的代码)。 Gmail帐户能够接收邮件。 但是我的客户有一个机构的.edu
电子邮件地址,并且电子邮件未送达。
这是我的代码的最低版本:
<?php
$first_name = 'John';
$last_name = 'Smithy';
$email = "myemail@whyisntthisworking.com";
$msg = "This is a test email. If you received it things are working.";
$test_email = (isset($_POST['test_email'])) ? $_POST['test_email'] : FALSE;
$to;
$from = $email;
$subject = "Contact from JamesGregoryMD.com";
$body = wordwrap( "{$first_name} {$last_name}:\n\n{$msg}\n\n{$email}\n{$phone}", 70);
$headers = "From: {$from}" . "\r\n";
if ($test_email) {
# send email
$return = mail($test_email,"Test email",$body, $headers);
if ($return) {
echo "<h1>MAIL SENT</h1>";
} else {
echo "<h1>MAIL NOT SENT</h1>";
}
}
?>
<form id="contact" method="post">
<input type="email" name="test_email" placeholder="email" />
<input type="submit" value="Send" />
</form>
您实际上正在做的是“欺骗”发件人地址。 根据SMTP的定义,这是完全可以接受的,但这只是因为当Internet成立之初,没有人认为它将被滥用。 不幸的是,这给垃圾邮件发送者敞开了大门,因此通常会进行各种检查,您可能会遇到以下问题:
From
头不匹配的消息。 根据设置的不同,将"-f$from_address"
作为第5个参数添加到mail()
函数中可能会带来一些乐趣。 使用Reply-To:
标头而不是From:
,您可能不会遇到此问题(但将获得相同的功能)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.