2014-06-26 135 views
0

我正面臨一個PHP mail函數的意外問題。腳本將電子郵件發送到所有電子郵件地址,但不發送給我的域名PHP郵件不發送郵件

假設我發送電子郵件到[email protected]它收到了,但是當我發送電子郵件到[email protected]它沒有收到。

我正在使用GoDaddy虛擬主機和PHP mail函數。 SMTP在GoDaddy服務器上也不起作用。

PHP代碼如下:

<?php 

$to  = '[email protected]'; 
//$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

$r = mail($to, $subject, $message, $headers); 
if($r) { 
    echo 'mail sent'; 
}else { 
    echo 'not sent'; 
} 
die; 

?> 

和SMTP郵件通過PHPMailer不工作,以及:

<?php 
echo "<pre>"; 

//die('ada'); 
require 'PHPMailerAutoload.php'; 

$mail = new PHPMailer(); 
$mail->Host = "relay-hosting.secureserver.net"; // your SMTP Server 
$mail->IsSMTP(); 
$mail->PORT = 465; 
$mail->SMTPDebug=true; 
$mail->SMTPAuth = true; // Auth Type 
$mail->SMTPSecure = "ssl"; 
$mail->Username = "[email protected]"; 
$mail->Password = "password"; 
$mail->Sender = "[email protected]"; 
$mail->From = "[email protected]"; 
$mail->AddReplyTo("[email protected]"); 
$mail->FromName = "user "; 
$mail->AddAddress("[email protected]"); 
$mail->IsHTML(true); 
$mail->Subject = "Test subject"; 
$mail->Body='Test Subject'; 
$mail->WordWrap = 50; 
if($mail->Send()) 
{ 
    echo"<script>alert('The Form has been posted ,Thank you');</script>"; 
} 
else 
{ 
    echo 'mail error'; 
} 
+0

你是否收到任何錯誤信息? –

+0

是的,當我嘗試連接SMTP它promp smtp連接失敗。 表示沒有連接到smtp服務器。所以,我正在使用PHP郵件功能。 –

+0

你確定你有正確的'主機'嗎?它可以是'smtpout.secureserver.net' –

回答

0

想我發送電子郵件至[email protected]接收它,但是當 我發送電子郵件至[email protected]未收到。

我正在使用GoDaddy虛擬主機和PHP mail函數。 SMTP也是 在GoDaddy服務器上不起作用。

我懷疑這與使用mailPHPMailer時的編碼有什麼關係。事情只是因爲你發送郵件,這並不意味着接收端認爲郵件有效。而接收端的可能性 - 即使它是你的域名 - 決定從隨機服務器發送的隨機電子郵件簡直就是垃圾郵件。

我已經發布了a more detailed answer here,但是當涉及垃圾郵件時,它基本上歸結爲:您的域名是否有SPF (Sender Policy Framework)記錄設置?您是否也爲該域設置了a PTR (reverse DNS) record

如果您沒有SPF或PTR記錄,則您的郵件被簡單標記爲垃圾郵件的可能性非常高。

如果您認真對待從您的服務器發送郵件,您至少需要獲得SPF記錄& PTR記錄集。