ゴミ箱に自動的に郵便ランディングなしでPHPで電子メールを送信する方法

StackOverflow https://stackoverflow.com/questions/4529528

質問

phpのmail()関数を使用して、いくつかのメールを送信します。しかし、私のメールはすべてゴミ箱に自動的に着地しています。これを防ぐ方法はありますか?もしそうなら、それについてもっと学ぶためにどこで読むべきですか。

phpmailerを使用することをお勧めしますか?

よろしく、アレクサンダー

役に立ちましたか?

解決

レシーバーの終わりにあるスラッシュボックスを意味すると思います。したがって、基本的に受信電子メールサーバーはスパムと見なされています。これは、次の場合に発生する可能性があります。

1)あなたが送っているIPは、スパムのためにすでにブラックリストに登録されています(共有ホスティングで頻繁に発生します)

2)IPとドメインは比較的新しく、不明です。

(多くの場合、確立されたサイトのニュースレターもスパムになります)。

専用のIPの場合、IPにRDNSを設定してドメイン名と一致させると、問題が解決する可能性が非常に高くなります。もう1つの通常の練習は、レシーバー(彼女があなたのウェブサイトで購読している場合)にスラッシュ/スパムフォルダーをチェックし、メールアカウントでメールアドレスをホワイトリストに登録することです。

よろしく、

JP

他のヒント

自慢することはありませんが、私はメールサーバーエンジニアです。スパムフィルターは、小さな問題ごとに電子メールで多くの「問題」を探し、「ポイント」を追加します。これらの問題が十分に合計されている場合、電子メールは(いずれか)になる可能性があります。SMTP中に拒否され、スパムフォルダーにルーティングされ、受信トレイにルーティングされますが、タグ付けされています。スパム「ブラックホール(神秘的に失われた)。

この問題を回避するために、いくつかの問題を修正する必要があります。これにより、スパムスコアまたはスパムポリシーの競合が減少します。あなたは自分の邪魔にならないようにして、実際に「電子メールのベストプラクティス」について少し学びたいと思っています。

1つの問題は、WebサーバーのPHPスクリプトから受信者にメールを送信しないでください。とにかく、受信者に直接ではありません。

Anti-Spamソフトウェアは、Formmail.plなどのすべての不安定なインストールのために、Webベースの電子メールに不信感を抱くことをずっと前に学びました。

Webサーバーから電子メールを送信する正しい方法は、有効なメールボックスを使用して有効なメールボックスを介して電子メールを送信することです。したがって、ウェブサイトに電子メールホスティングがある場合は、「Website-notification@websitedomain.com」などのメールボックスを作成します。あなたが好きなものと呼んでください。これで、PHPスクリプトに、認証されたSMTPを使用して、そのアドレスをメールで送信します。私はあなたのための学習演習としてPHPから認証されたSMTPを使用する方法を学ぶプロセスを任せます(オンラインで多くのチュートリアルがあります)。

有効なSMTPサーバーを介してメールを送信したら、メールが配信される可能性があります。しかし、そこで止まらないでください。他のメール配信ドメインでも同じ問題が発生する可能性があります...

2)他の誰かが指摘したように、あなたが逃していないことを確認してください:from:subject:and date:。日付は、電子メールの標準日付形式である必要があります。または、一部のスパムフィルターがフラグを立てる必要があります。ヘッダーが足りない場合は、スパムポイントのタグが付けられます。

3)アドレスからあなたのアドレスは有効なメールボックスでなければなりません。 「from:noreply@yourdomain.com」を使用して電子メールを送信しないでください。一部のスパムアンチスパムソフトウェアが「送信者検証」を行い、FROMアドレスが偽物または偽物かどうかをテストするため、アドレスから存在する必要があります。

MailServerで、noreply@を作成します。誰もあなたが実際にそのメールボックスをチェックする必要があるとは言いません...あなたは、監視されていないアドレスですべてのメールをオートデレートするルールを持つことができます。重要なポイントは、他のMailServersがMXに接続してそのメールボックスをテストするときに「550のユーザーなし」を取得した場合、メールにスパムとしてフラグを立てることができます。

4)ドメインDNSにSPFレコードがある場合、ドメインに電子メールを送信する可能性のあるすべてのIPがリストされていることを100%確認してください。不明な場合は、SPFレコードが悪いため、SPFレコードを使用しないでください。

5)「ドメイン登録プライバシー」または「ドメインプロキシ」サービスを使用しないで、連絡先情報をWHOISから隠します。電子メールの正当な送信者は、ドメインの連絡先情報を隠す必要はありません。スパムフィルターがこれを確認します。

6)MailServerのIPアドレスを把握し、Spamcop、Spamhaus、またはBarracuda Spamブラックリストで「ブラックリスト」ではないことを定期的に確認します。詳細についてはGoogle。

うまくいけば、私の答えがあなたを助けてくれ、それに対する単純な単一の答えがないことを伝えます。最近では、メールを送信したい場合は、これらの問題に注意する必要があります。

JPの回答は部分的に正しいですが、経験から私が知っているメールのヘッダーである可能性もあります。これはスパムフォルダーに物を送信します。

メールをドメインに設定してください。

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

これはおそらく、メールクライアントとスパム設定の構成と関係があります。アカウントを開いてみてください gmail.com 電子メールを送信してください。問題なく、メールサーバー/クライアントの問題であることがわかります。そうでない場合は、PHPコードと入手したメールの完全な電子メールヘッダーを投稿してください。

これは、多くの場合、ヘッダーが欠落しているため、または有名な電子メールサーバードメインキーの署名が存在しない場合、またはそのようなものがあるためです。すでに別の電子メールサーバーがある場合は、メール機能を介して直接ではなく、電子メールサーバーを使用して電子メールを送信するためにPHP Pear Pear Mailパッケージを使用できるかどうかを確認する必要があります。はるかに柔軟であるため、それは私が便利だと思うものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top