2009-09-03 150 views
0

好了,我把一個非常基本的郵件功能,在測試這一點,我用一對夫婦的電子郵件帳戶,一個我的谷歌賬戶和其他我的工作考慮。我在Google帳戶中收到所有電子郵件,但不會收到指向我工作的郵件。我想這可能是因爲他們已經趕上了反垃圾郵件軟件。關於如何開發郵件功能以避免被垃圾郵件軟件困擾的任何想法?PHP的郵件功能沒有得到電子郵件

這裏是我的郵件功能的副本

$to  = '[email protected]'; 
$subject = 'The subject'; 
$message = 'Hello,'."\n"; 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 
$headers = 'From: [email protected]' . "\r\n" . 
'CC: [email protected]' . "\r\n"; 

$mail_sent = mail($to, $subject, $message, $headers); 
if($mail_sent) { 
    header("location:newlocation.php"); 
} 
} 
+0

您是否檢查過您在Gmail郵箱收到的郵件的郵件標題?可能是因爲這些信息可能導致你朝着正確的方向前進。 – goddva 2009-09-03 20:39:16

回答

1

垃圾郵件過濾器使用了很多不同的方法來確定未來在郵件實際上是垃圾郵件。

這裏有幾件事情,我會建議:

  • 描述性的主題
  • 描述性信息,小心HTML等豐富內容體內因爲有時垃圾郵件過濾器將它拿起作爲「廣告」。
  • 儘可能全面的完整的標題與現實的信息。

嘗試嘗試不同的組合,看看你是否可以通過你的工作。好消息是你的谷歌賬戶得到了電子郵件,所以你知道它不是本地的服務器端問題。

2

很多時候,這有少做PHP的mail()函數,並做更多的事與你的郵件傳輸代理的配置。許多郵件服務器在它們傳遞給垃圾郵件過濾器之前都會將它們假設來自垃圾郵件發送者的郵件(即未配置/錯誤配置的發件人)彈回。

如果您檢查您的MTA的日誌,你可能會發現一些退回郵件的「郵件從該服務器喜歡不準,請參閱[插入網址]黑名單信息。

0

垃圾郵件確定完全由確定運行垃圾郵件試探法的軟件,您必須查看貴公司使用的反垃圾郵件軟件,並瞭解爲什麼它被捕獲爲垃圾郵件,而且通常與您的郵件服務器設置有關。很多軟件採用的是一個有效的反向DNS條目,那麼你可以考慮這樣做。

你必須認識到,如果有各地的反垃圾郵件軟件的簡單方法捕獲您的電子郵件爲垃圾郵件只是b如果修改了一些頭文件,那麼反垃圾郵件軟件就完全沒用了,因爲垃圾郵件發送者也會知道這些方法。

0

「從」頭添加有效的是做的第一件事,我想。

1

你可能需要正確格式化您的標題和內容。邊界不見了。

這裏有一個簡單的功能與HTML格式的郵件:

<?php 
function html_mail($i){ 
    $to = $i['to']; 
    $to_name = $i['to-name']; 
    $subject = $i['subject']; 
    $html_message = $i['message']; 
    $from = $i['from']; 
    $from_name = $i['from-name']; 
    $reply_to = $i['reply-to']; 
    $reply_to_name = $i['reply-to-name']; 

    if(!$to || !validate::email($to)){return false;} 

    $email_message = ''; 
    $email_subject = $subject;$email_txt = $html_message; 
    $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
    $email_to = ($to_name ? $to_name.'<'.$to.'>':$to); 

    $headers = "From: ".($from_name!='' ? $from_name.'<'.$from.'>':$from)."\n"; 
    if($reply_to){ 
    $headers .= "Reply-To: ".($reply_to_name ? $reply_to_name.'<'.$reply_to.'>':$reply_to)."\n"; 
    } 
    $headers .= "MIME-Version: 1.0\n" . 
       "Content-Type: multipart/mixed;" . 
       " boundary=\"{$mime_boundary}\""; 
    $email_message .= "This is a multi-part message in MIME format.\n\n"; 

    $email_message .= "--{$mime_boundary}\n"; 
    $email_message .= "Content-Type: text/html; charset=utf-8\n"; 
    $email_message .= "Content-Transfer-Encoding: 8bit\n\n"; 
    $email_message .= $email_txt; 
    $email_message .= "\n\n"; 

    $email_message .= "--{$mime_boundary}\n"; 
    $email_message .= "Content-Type: text/plain; charset=utf-8\n"; 
    $email_message .= "Content-Transfer-Encoding: 8bit\n\n"; 
    $email_message .= trim(strip_tags(str_replace(array('<br/>','<br />','<br/>'),"\r\n",$email_txt))); 
    $email_message .= "\n\n"; 

    $email_message .= "--{$mime_boundary}--"; 
    $ok = @mail($email_to, $email_subject, $email_message, $headers); 

    return $ok; 
} 
?> 

,當你有一個正確格式的郵件,你可能將能夠通過通過過濾器。