2009-09-03 24 views
0

大丈夫なので、私は非常に基本的なメール機能を組み込みました。これをテストしている間、私はいくつかの電子メールアカウント、私のGoogleアカウントと私の仕事アカウントを使用しました。私はすべての電子メールを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

答えて

1

スパムフィルターが入ってくるメールが実際にスパムであるかどうかを決定するためにさまざまな方法の多くを使用して、私のメール機能のコピーです。

  • 記述件名行
  • 時々スパムフィルターのようにそれをピックアップします体内のHTMLおよびその他のリッチコンテンツとの慎重な記述メッセージ:ここ

    は私が示唆しているいくつかのことです"広告"。

  • 可能な限り現実的な情報を持つ完全なヘッダー。

さまざまな組み合わせで試してみて、自分の仕事に慣れることができるかどうかを確認してください。良いことは、あなたのGoogleアカウントには電子メールが届いているので、サーバー側の問題ではないことがわかっているということです。

2

多くの場合、これはPHPのmail()関数とはあまり関係がなく、メール転送エージェントの設定とは関係がありません。多くのメールサーバーは、迷惑メールフィルタ(たとえ、構成されていない/誤って構成された送信者)からのメッセージであっても迷惑メールフィルタに渡される前に、そのメッセージを跳ね返ります。

あなたのMTAのログをチェックした場合、あなたはおそらく、このサーバーからのメール」、の同類が許可されていないいくつかのバウンスメッセージを見つけるには、[挿入URL]でブラックリストの情報を参照してください。

0

スパム決意が完全によって決定されますあなたの会社が使用しているスパム対策ソフトウェアを調べ、それがスパムとして捕捉されている理由を調べなければならない場合があります。

アンチスパムソフトウェアの周りに簡単な方法でスパムメールを捕まえることができたら、あなたはそれを認識しなければなりません。いくつかのヘッダーを変更すると、スパマーはこれらの方法も知っているので、スパム対策ソフトウェアはまったく役に立たないでしょう。

0

有効な「from」ヘッダーを追加することが最初にやるべきことです。

1

おそらくヘッダーとコンテンツを適切にフォーマットする必要があります。境界がありません。

ここではHTMLフォーマットのメールと1つの簡単な関数です:あなたが適切にフォーマットされたメールがあるとき

<?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; 
} 
?> 

、あなたはおそらくフィルターを通すことですることができるようになりますが。

関連する問題