2012-04-03 79 views
4

這裏是我的郵件發送代碼:每次我的郵件進入垃圾郵件中的PHPMailer

$fullname = $_POST['fullname']; 
    $email = $_POST['email']; 
    $telephone = $_POST['telephone']; 
    $email = $_POST['email']; 
    $date = $_POST['date']; 
    $time = $_POST['time']; 
    $adult = $_POST['adult']; 
    $children = $_POST['children']; 
    $company_name = $_POST['company_name']; 
    $addition = $_POST['addition']; 
    $confirm = $_POST['confirm']; 

    $body = ' 
    <table width="100%" border="0" cellpadding="0"> 
     <tr> 
     <td>Dear Sir, 
     </td> 
     </tr> 
     <tr> 
     <td><b>Booking request from '.$fullname .'</b><br /><br /> 
      <u>The details provided are:</u><br /> 
      <p>Name : '.$fullname.'<br /> 
      E-mail Address: '.$email.'<br /> 
      Telephone: '.$telephone.'<br /> 
      Date: '.$date.'<br /> 
      Time: '.$time.'<br /> 
      Adult: '.$adult.'<br /> 
      Children: '.$children.'<br /> 
      Company Name: '.$company_name.'<br /> 
      Confirm by: '.$confirm .'<br /> 
     Additional Requirements: '.$addition.'<br /> 
      </p> 
      </td> 
     </tr> 
     <tr> 
     <td> 
     <p>Thank you,<br /> 
     Kaavya Cuisine 
     </p></td> 
     </tr> 
    </table> 
    '; 

    $to   = '[email protected]'; 
    $subject = 'Booking Request'; 
    $sitename='Website Name'; 

    $mail = new PHPMailer(); 
    $mail->AddReplyTo($to,$sitename); 
    $mail->SetFrom($email,$fullname); 


    $mail->AddAddress($to, $sitename); 
    $mail->Subject = $subject; 

    $mail->MsgHTML($body); 
    $mail->Send(); 

我每次發送郵件,它會在垃圾郵件。有誰知道爲什麼會發生這種情況?

+0

這個問題可能在您的郵件客戶端 – 2012-04-03 06:46:04

+0

我甚至嘗試用我的真正的Hotmail地址.... $ email ='[email protected]'; – sujal 2012-04-03 06:48:04

+1

請提供一些更多信息......您想從哪裏發送此電子郵件?您是否嘗試使用該機器上的命令行發送郵件? – SimonSimCity 2012-04-03 06:56:25

回答

8

根據你的代碼,我注意到你直接從你的網頁上發送一封電子郵件到你的域名上。

例如,您使用了@ hotmail.com地址。

當收件人收到郵件時,收件人的郵件服務可能會測試郵件發件人的反向DNS。所以發件人是@hotmail.com,但郵件來自您的域名,當然不是hotmail.com

因此,我從地址@hotmail.com收到一封郵件,但IP發件人根本與域hotmail.com沒有任何關係:這就是垃圾郵件!

http://en.wikipedia.org/wiki/Reverse_DNS_lookup

我認爲,一個可能的解決方案是:在你的PHP代碼使用與SMTP驗證,並從那裏發送郵件!

+0

您可能會顯示一個可能的解決方案的片段嗎? – Ayan 2018-02-26 05:56:16

3

通常情況下,如果郵件的「From:」標頭值的域部分與實際發送電子郵件的域不匹配,則該郵件會標記爲垃圾郵件。

繞過這個最簡單的方法是使用「來源:」您的域名相匹配,並使用「回覆:」頭到您在設置「發件人:」電子郵件標題

對於例如:如果你是從mydomain.com發送郵件和電子郵件,從你的是[email protected],你應該改變你的頭到這一點:

來源:[email protected]

回覆:[email protected]

+0

我已經檢查過來自:[email protected]和Reply-To:[email protected]同樣的問題 – sujal 2012-04-03 07:18:44

0

如果這是你的完整代碼,那麼你必須寫PHPMailer的路徑多數民衆贊成它。

EX-

require '/...../PHPMailer-master/class.phpmailer.php'; 

require '/....../PHPMailer-master/PHPMailerAutoload.php'; 

require '/......./PHPMailer-master/class.smtp.php'; 

上面會幫你的。