[英]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.