您無法使用郵件服務器代表上述域名成功發送郵件。這些域中的每個域都有一些在DNS中使用的名爲SPF(發件人策略框架)的記錄,它告訴所有收件人檢查SPF的郵件服務器以確認發件人的IP與SPF相同。您需要通過自己的中繼來通過SMTP服務器發送電子郵件。
SPF例如對GMAIL & YAHOO
v=spf1 redirect=_spf.google.com
v=spf1 redirect=_spf.mail.yahoo.com
檢查是否使用本網站的域名存在SPF記錄:
http://mxtoolbox.com/spf.aspx
在我看來,你最好的選擇將您的郵件轉發到每個域的正確SMTP服務器。您可以使用PHPMailer輕鬆完成此操作。如果在FROM選項中設置的域是私人管理的域,那麼如果沒有設置SPF記錄並且您的發送IP未列入黑名單,那麼您應該可以代表中繼。
用於檢查的網站,如果你發送IP被列入黑名單:
http://mxtoolbox.com/blacklists.aspx
如何,您可以選擇用於特定域的SMTP設置的示例:
$email = '[email protected]';
$domain = explode('@', $email) ;
switch ($domain[1]) {
case 'yahoo.com':
//NOT REAL SMTP SETTINGS!
$mail->Host = 'smtp1.yahoo.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'secret';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
break;
case 'gmail.com':
//NOT REAL SMTP SETTINGS!
$mail->Host = 'smtp1.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'secret';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
break;
}
//Rest of PHP Mailer code
是你通過Yahoo的SMTP服務器轉發你的郵件?如果是這樣,那麼是的。 – Kitson88
@bub可以從任何他們想要的郵件客戶端發送郵件,但必須使用SMTP的一些細節。目前我沒有使用任何SMTP服務器的詳細信息。 –
@ Kitson88目前我沒有使用任何SMTP服務器的詳細信息。如果我這樣做,我將不得不使用幾個SMTP客戶端詳細信息,如Gmail,雅虎,Hotmail等。 –