0

私は自分のWebサイト(評判の良い大規模なPR6サイト)でユーザーアカウントを提供し始めたところですが、登録メールはほとんどの場合受信者のスパムボックスに送信されることに気付きました。

これまでのところ、送信したメールは数通しかないため、数千通を非難しているわけではありません。

mail()関数を使用してPHP経由でメールを送信します。以下に、mail()関数で送信するヘッダーを示します。

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers  .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers  .= 'From: Domain.com <noreply@mydomain.com>' . "\r\n";

これらのスパムフィルターを回避する方法やトリックはありますか?私が送信しているものをスパムではないことは明らかです。登録メールには3つのリンクが含まれています。

4

3 に答える 3

6

電子メールにスパムのフラ​​グが立てられる原因はたくさんあります。解決策は2つあります。1つは、優れたSMTPサーバー(配信可能性)を使用する必要があり、次に、電子メールを正しく作成する必要があります。(mail()を使用した困難な作業。)

PHPを使用して正しくメールを送信する

あなたは本当にPHPMailerのようなものを使うべきです。これは、電子メールを送信するためのphpライブラリであり、それらを適切に実行するため、電子メールが正しく到達する可能性が高くなります。

http://phpmailer.worxware.com/

メール配信

メール配信は頭痛の種になる可能性がありますが、http://www.sendgrid.comをお勧めします-基本的にはphpmailerのsmtpサーバーとして設定し、送信メールサーバーを使用します。はるかに簡単な時間。特に大量のメールを送信し始めるとき。

コード例

phpmailerのWebサイトからの電子メールの例:

<?php
require_once('../class.phpmailer.php');

$mail             = new PHPMailer();

$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug  = 2;  // enables SMTP debug information (for testing)
                                       // 1 = errors and messages
                                       // 2 = messages only
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.sendgrid.net"; // sets the SMTP server to sendgrid's server
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "emailuser@host.com"; // Sendgrid user
$mail->Password   = "yourpassword";        // Sendgrid passw.

$mail->SetFrom('name@yourdomain.com', 'First Last');

$mail->AddReplyTo("name@yourdomain.com","First Last");

$mail->Subject    = "PHPMailer Test Subject via smtp, basic with authentication";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");

echo !$mail->Send() ? "Mailer Error: " . $mail->ErrorInfo : "Message sent!";    
?>

私はSendgridとは一切関係がありません。私は彼らのサービスの大ファンです。私は長年、Web開発ショップでmail()関数、SMTPサーバー、メールキュー、およびサービスと戦ってきましたが、最悪の敵の運命を望んでいません。時間と心配を節約してください。

乾杯...

于 2011-02-10T17:41:25.820 に答える
0

あなたはおそらくこれを行ったことがあるでしょうが、私がチェックすることの1つは、スパムフィルターの大きな危険信号となるキーワードが電子メールにないことです。もちろん、「登録」は必要ですが、実際のスパムによく現れる他の単語は避けてください。スパムフィルターは電子メール内のリンクの数にも敏感であると確信しているので、3からスリム化することも良い考えかもしれません。

于 2011-02-10T17:40:24.787 に答える
0

からのヒントのカップル:http://pauldowman.com/2008/02/17/smtp-mail-from-ec2-web-server-setup/

authsmtpなどのサードパーティのsmtpリレーを使用している場合は、DNSにspfレコードを追加する必要があります。

spfwizard.com。

Fromフィールドを偽装しないでください

あなたはsomebody@yourdomain.comからのみメールを送るべきです。たとえば、somebody @ pauldowman.comからメールを送信しようとすると、受信者はpauldowman.comにSPFレコードがあり、メールサーバーを承認していないことを確認します。次に、スパムフォルダに移動します。

これを回避するには、noreply @ yourdomain.comなどから送信し、Reply-Toヘッダーをsomebody@pauldowman.comに設定します。fromフィールドに名前を設定することもできます。たとえば、「Paul Dowmanviayoursite」のようになります。Reply-Toヘッダーは、ほとんどの人の返信が正しいアドレスに送信されるようにしますが、必然的にnoreply@yourdomain.comに到達するものもあるため、そのアドレスにオートレスポンダーを設定するか、少なくともメッセージがバウンスすることを確認して、ユーザーが最終的に間違いに気付くようにします。

そして、PHPMailer()の使用について2番目に説明します。たくさんの小さなことを世話します。

于 2011-02-10T17:45:29.743 に答える