首先要做的事情......我知道邮件的可传递性受到数百个因素的影响,因此,如果一个特定的事情是原因,就永远不可能说出来。 (我不期待这个。)
我的问题是邮件服务器是否正常/预期会阻止具有不同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>
答案 0 :(得分:1)
你实际做的是“欺骗”发件人地址。根据SMTP的定义,这是完全可以接受的,但仅仅因为当互联网年轻时,没有人认为它会被滥用。不幸的是,这为垃圾邮件发送者敞开了大门,因此通常会执行各种检查,您可能会遇到这些检查:
From
标头不匹配的邮件。根据设置的不同,您可以将"-f$from_address"
作为mail()
函数的第5个参数添加。答案 1 :(得分:1)
使用Reply-To:
标题代替From:
,您可能不会遇到此问题(但会获得相同的功能)。