プログラムで送信するメールが自動的にスパムとしてマークされないようにするにはどうすればよいですか?


434

これはトリッキーなもので、私は常に許可ベースの電子メール(つまり、送信する許可を持っている人にのみ送信する)などのテクニックに頼り、露骨にスパム的な用語を使用していません。

最近、プログラムで送信するメールの一部が自動的にユーザーのスパムフォルダーにシャッフルされ始めており、それに対して何ができるのか疑問に思っています。

これは、これらの特定の電子メールが人間がスパムとしてマークするものではないという事実にもかかわらず、具体的には、人々が多額のお金を支払ったライセンスキーを含む電子メールであるため、スパムと見なすつもりはないと思います

これは私が本質的に無知な単調な人である大きなトピックだと思います。

回答:


338

メールとドメイン名が同じであることを証明し、ドメイン名のなりすましを防ぐには、SPFDKIMなどのメール認証方法を使用します。SPF Webサイトには、サイトのDNS情報を生成するためのウィザードが含まれています。

逆引きDNSチェックして、メールサーバーのIPアドレスがメールの送信に使用するドメイン名を指していることを確認します。

使用しているIPアドレスがブラックリストに含まれていないことを確認してください

返信先アドレスが有効な既存のアドレスであることを確認してください。

宛先フィールドには、電子メールアドレスだけではなく、完全な実名の宛先を使用します(例:)"John Smith" <john@blacksmiths-international.com>

abuse@yourdomain.comやpostmaster@yourdomain.comなどの不正使用アカウントを監視します。つまり、これらのアカウントが存在することを確認し、送信されたものを読んで、苦情に対応します。

最後に、退会を本当に簡単にします。そうしないと、ユーザーはスパムボタンを押して購読を解除し、評判に影響を与えます。

そうは言っても、Hotmailがあなたの電子メールを受け入れるようにすることは、依然として黒字です。


虐待アカウントについて詳しく教えていただけますか?私はあなたが何を意味するのか分かりません
marcgg

26
brandonchecketts.com/emailtest.phpメールサーバーの設定がDomainKeys、DKIM、SPF、およびその他のスパム対策メソッドに準拠しているかどうかをテストできます。
Jonas

3
また、bounced-emails-detection-algoritmを作成して、不正なメールアドレスを確認します(たとえば、メールが3回返送された場合、そのアドレスへのメール送信を停止します)
clyfe

11
「つまり、Hotmailがあなたのメールを受け取れるようにすることは、依然として黒字です。」Hotmailは、スパムと非スパムをほとんどまたはまったく区別しません。すべてが受信トレイまたはスパムビン(設定に基づく)にあります。
HalilÖzgür12年

2
Brandon Checkettsはメールサーバー準拠ツールをdkimvalidator.comに移動しました
Dana Wheeler

30

できるだけ多くの主要なメールプロバイダー(gmail / yahoo / hotmail / aol / etc)のアカウントにサインアップします。メールに大きな変更を加えたり、メールを送信するコードを変更したり、メールサーバーに変更を加えたりする場合は、必ずすべてのアカウントにテストメッセージを送信し、スパムとしてマークされていないことを確認してください。


2
一部のスパムシステムでは、個人の読書習慣が考慮されています。(この送信者からのメールは読まれますか、それとも読まれずに削除されますか?)したがって、これは、フラグが付けられているとき(真の否定)を見つけるのに間違いなく役立ちますが、この手順では、他のユーザーには送信されないことを証明できません同じシステム上(誤検知)。
Jon Adams

26

注文が完了したら、差出人アドレスを連絡先に追加するようにユーザーに指示できます。そうすることで、非常に役立ちます。

それ以外の場合は、一部のユーザーからログを取得しようとします。メッセージのヘッダーにスパムとしてフラグが付けられた理由の詳細が含まれている場合があります。これを使用して、テキストを微調整できます。

あなたが試すことができる他のこと:

  • 件名にサイト名またはアドレスを入力してください
  • メッセージ内のすべてのリンクをドメインを指すようにします(email.comは除く)
  • メールにアドレスまたはその他の連絡先情報を入力します

24

以前の回答のいくつかの箇条書き:

  • 最も重要:送信者アドレス(「From」)は、メールの送信元のサーバーで実行されているドメインに属していますか?そうでない場合は、そうします。のような送信者アドレスは使用しないでくださいxxx@gmail.comreply-to別の住所に到着するために返信が必要な場合は、ユーザー。

  • サーバーがブラックリストに載っていますか(たとえばspamhaus.orgのIPを確認してください)?これは、ネイバーの動作が悪いときに共有ホスティングを使用している場合に発生する可能性があります。

  • メールはスパムフィルターによってフィルター処理されますか?スパムフォルダがあるフリーメーラーでアカウントを開いて見つけてください。また、スパムフィルタリングをまったく行わないアドレスにメールを送信してみてください。

  • 送信者アドレスを追加するために、mail()の5番目のパラメーター "-f"が必要になる可能性はありますか?(PHPマニュアルのmail()コマンドを参照)

  • ログファイルにアクセスできる場合は、もちろんそれらを確認してください。

  • 「from:」アドレスでバウンスメールの可能性をチェックしていますか(「Returned to sender」)?別の「errors-to」アドレスを設定することもできます。

22

メールを送信する前に、メールアドレスが正しいことを確認してください。サインアップ時に誰かが間違ったメールアドレスを与えた場合、できるだけ早くそれについて頭を打ってください。

すべてのメールに、必ず「退会方法」情報を明記してください。退会するためにユーザーにログインを要求しないでください。これは、1クリックで退会するための一意のURLである必要があります。

これにより、「購読解除」が非常に難しいため、ユーザーがメールをスパムとしてマークするのを防ぐことができます。


11
ワンクリックで登録解除するための一意のURLの+1。退会するためにログインするのは嫌いです。それらをスパムとしてマークしました!
Shyju 2012

16

他のすべての回答に加えて、URLをリンクテキストとして含むHTMLメールを送信する場合は、URLがリンクテキストと一致することを確認してください。そうでない場合、Thunderbirdが自動的に詐欺のフラグを立てていることは知っています。

間違った方法:

Go to your account now: <a href="http://www.paypal.com.phishers-anonymous.org/">http://www.paypal.com</a>

正しい方法:

Go to your account now: <a href="http://www.yourdomain.org/">http://www.yourdomain.org</a>

または、URLの代わりに無関係なリンクテキストを使用します。

<a href="http://www.yourdomain.org/">Click here to go to your account</a>

1
こんにちはマイク、私は2つのドメイン、すなわちdomain1.comとdomain2.comを持っています。コードはdomain1.comでは機能しますが、domain2.comでは機能しません。なぜだかわかりませんか?私は考えを変えていません。stackoverflow.com/questions/42200904/…–
Naren Verma

1
@NarendraVermaこの場合、私の答えがあなたに当てはまるようではありません。ここで他の回答を確認して、他に役立つものがないか確認することをお勧めします。結局のところ、スパムと見なすものと通過させるものを決定するのはメールプロバイダーの責任であり、それぞれに考慮すべきいくつかの異なる要素があります。Gmail では、スパムメッセージをクリックしたときにメッセージがスパムとしてマークされる理由を簡単に説明しています。
マイク

1
マイクさんに返信していただきありがとうございます。実際にdomain1であなたの回答を適用しました。PHpMailerを使用していて、$ email_body = "<a href=' domain1.com'> View </ a >"のように追加しました。これは完全に機能しています。
Naren Verma 2017

1
2番目のドメイン2が機能しない理由がわかりません。はい、Gmailチームに連絡します。このコードでこれ以上の提案はありますか?
Naren Verma 2017

@NarendraVermaコードに問題はありません。
マイク

15

配信の問題を処理するサードパーティのメールサービスを検討してください。

  • 正確なターゲット
  • 垂直応答
  • 常時接触
  • キャンペーンモニター
  • エマ
  • 復路
  • IntelliContact
  • SilverPop

15

メールを配信することは、時には黒魔術のようになることがあります。逆引きDNSは本当に重要です。

NDRを注意深く追跡することは非常に役立つことがわかりました。私はすべてのNDRを単一のアドレスに送信し、それらを解析するWindowsサービス(Google ListNanny)を持っています。NDRからできるだけ多くの情報をデータベースに入れ、それからレポートを実行して、特定のドメインによって突然ブロックされ始めたかどうかを確認します。また、以前はNDRとしてマークされていたアドレスに電子メールを送信することは避けてください。これは、一般的にスパムの兆候であるためです。

一度に大量のカスタマーサービスメールを送信する必要がある場合は、それぞれに遅延を設けることをお勧めします。一度に1つのドメインに送信するほぼ同じメールが多すぎると、確実にそれらのドメインに到達するからです。ブラックリスト。

一部のドメインは、配信できない場合があります。Comcast.netが最悪です。

IPがhttp://www.mxtoolbox.com/blacklists.aspxなどのサイトに表示されていないことを確認してください


2
NDRとは何ですか?詳しく説明していただけますか?
ピキ

2
配信不能レポート、別名バウンスメッセージ
tripleee 2014

14

申し訳ありませんが、私や他の人がホワイトリストのデフォルトを使用してスパムのフィルタリングを制御している可能性があります。

つまり、不明なソースからのすべての電子メールは自動的にスパムになり、スパムフォルダに振り分けられます。(私は自分の電子メールサービスにスパムを削除させません。私は常に偽陽性がないかどうか到着を確認したいので、フォルダーをすばやくスキャンすることでかなり簡単です。)

(1)通常、自分にはメールを送信しません。(2)送信されたスパムに返信アドレスを偽装するスパマーがいるため、自分からのメールもスパムバケットに送られます。

したがって、スパムの指定から抜け出すには、メールが(送信者と件名の情報からの)正当なものである可能性があることを考慮し、最初にプレーンテキスト(すべての受信メールのデフォルト、スパムかどうか)で開き、正当かどうかを確認する必要があります。 。私のスパムフォルダーは電子メール内のリンクを使用しないため、トリッキーな画像リンクやその他の不正行為から保護されています。

同じソースからの今後の到着を自分のボックスに送り、スパムレビューのために転送されないようにしたい場合は、それを自分の電子メールクライアントに指定します。バルクメールフォワーダーとメールごとに一意の送信者アドレスを使用している組織にとって、それはあまりにも悪いことです。彼らは私の承認を得ることはなく、常に私のスパムフォルダに表示されます。私が忙しい場合、私はそれらを決して見ません。

最後に、HTMLとして送信されたとしても、電子メールがプレーンテキストで判読できない場合は、ソースと以前の貴重な経験のおかげで私が興味を持っていることがわかっている場合を除いて、それを削除する可能性があります。

ご覧のとおり、最終的にはユーザーの制御下にあり、そのようなシステムだけでメールが正当であるとシステムに納得させる自動化された行為はありません。この場合、うまくプレイする必要があり、フィッシングに類似したことは何もしないでください。また、メールを信頼して喜んでユーザーがホワイトリストに追加できるようにします。


13

アプリケーションのメールの1つが常にスパムとしてタグ付けされていました。これは、リンクが1つのHTMLで、本文にHTMLとして送信され、コンテンツタイプはtext / htmlでした。

この問題に対する私の最も成功した解決策は、電子メールを作成して、それが電子メールクライアントによって生成されたように見えるようにすることでした。

メールをマルチパート/代替MIMEドキュメントに変更し、テキスト/プレーンパーツとテキスト/ htmlパーツの両方を生成します。

EメールはOutlookによって迷惑メールとして検出されなくなりました。


このアプローチは、HTML対応の電子メールクライアントを使用しないセキュリティ意識の高いユーザーにも役立ちます
Jasen

13

YahooはSender IDと呼ばれる方法を使用します。これは、SPFセットアップウィザードで構成してDNSに入力できます。また、Exchange、Hotmail、AOL、Yahooなどの重要な機能の1つは、ドメインのリバースDNSを用意することです。それらは問題のほとんどをノックアウトします。ただし、意図的にユーザーまたはユーザーのルールをブロックすることを防ぐことはできません。


3
YahooはSPFレコードとDomainKeysを使用しています。SenderIDは別の(そして多くの点で互換性がなく、安全でなく、設計が不十分な)テクノロジであり、使用しないでください。
Dan Udey、2009

11

リバースDNSエントリが必要です。同じコンテンツを同じユーザーに2回送信する必要はありません。いくつかの一般的なWebメールおよび電子メールクライアントでテストする必要があります。個人的に私は、新しくインストールされたスパムの暗殺者、訓練されたスパムの暗殺者、および複数のhotmail、gmail、およびaolアカウントを使って鉱山を走りました。

しかし、何かにリンクしたり宣伝したりしていないスパムを見たことはありますか?ベイジアンフィルターに影響を与えようとするスパマーです。彼が高い評価を得て、その後彼の将来の電子メールに含まれるであろういくつかの単語を含めることができれば、それは自動的に良いものとして学習されるかもしれません。そのため、メールの送信時にユーザーのフィルターがどのように設定されるかを実際に推測することはできません。

最後に、リストをドメインでソートするのではなく、ランダム化しました。


10

受信者の実際の姓名を本文で使用することは、スパムフィルターを通過する確実な方法であることがわかりました。


8

英国では、会社の実際の住所と登録番号を含めることもベストプラクティスです。

そうすれば、すべてがオープンで正直になり、手動でスパムとしてマークする可能性が低くなります。


7

追加します:

「購読解除」をクリックすると、実際の購読解除が提供されます。クリックすると「正常に登録解除されました」と表示されるダミーの登録解除リンクを提供する実際のニュースレターを見てきましたが、今後もニュースレターを受け取ります。


7

あなたができる最も重要なことは、あなたが電子メールを送っている人があなたの電子メールを受け取ったときに「スパム」ボタンを押す可能性が低いことを確実にすることです。したがって、次の経験則を守ってください。

  • メールを送信する相手から許可を得ていることを確認してください。リクエストしていない人にメールを送信しないでください。

  • 各メッセージの上部で自分が誰であるか、そしてその人がメールを受信する理由を明確に特定します。

  • 少なくとも月に1回、リストのユーザー(リストを実行している場合)にリマインダーメールを送信し、リストからの通知を引き続き受信するためにリストにオプトインするように強制します。はい、これはあなたのリストが時間とともに短くなることを意味しますが、あなたのリストの人々は「買い込まれ」、あなたのメールにフラグを付ける可能性が低くなるという利点があります。

  • コンテンツの関連性と有用性を高く保ちます。

  • 今後のコミュニケーションをオプトアウトする簡単な方法を人々に提供します。

  • SendGridのような電子メール送信サービスを使用して、良好なIPレピュテーションを維持するように努めます。

  • ショートリンクの使用は避けてください-これらはしばしばブラックリストに載っています。

これらの経験則に従うことは長い道のりです。


6

私は過去にここで仕事をしてきた多くのサイトで同じ問題を抱えていました。ユーザーがメールを確実に受け取る唯一の保証された方法は、ユーザーに安全なリストに追加するようにアドバイスすることです。他の方法は、実際にそれを助けることができるものになり、保証されません。


6

あなたのサービスにサインアップした人があなたが修正していないタイプミスを含むメールを入力しているケースは非常によくあります。例:chris @ gmial.com -or- james @ hotnail.com

そのようなドメインは、電子メールサーバーのIPやドメインに自動的にフラグを立て、その評判を傷つけるスパムトラップとして使用されるように構成されています。

これを回避するには、製品のサブスクリプション時に入力された電子メールアドレスを再確認してください。また、確認メールを送信して、プロダクトキーを送信するか、サブスクリプションを受け入れる前に、確認メールを入力する人間によってこのメールアドレスが100%検証されていることを確認してください。確認メールでは、メールボックスの所有者が登録した人であることを本当に確認するために、リンクをクリックするか返信するよう受信者に要求する必要があります。


1
この。最初に基本的なサブスクリプションの衛生管理を実践しなければ、現在受け入れられている回答には何の違いもありません。
Tripleee 2017

4

受信側で何が動かなくなっているのかを判断するには、いくつかのフィードバックに依存しているようです。明らかな「スパム」について送信メールを自分で確認する必要があります。

まともなスパム制御システムを購入し、それを介して送信メールを送信します。適切な量​​のメールを送信する場合、特にデスクトップウィンドウのユーザーがいる場合は、送信ウイルスを送信するリスクがあるため、とにかくこれを行う必要があります。

たとえば、Proofpointには、スパム+ウイルス対策+いくつかのレピュテーションサービスが1つの展開に含まれていました。(私はそこで働いていたので、たまたま頭の中でこのことを知っていました。この分野の他のベンダーが同様の機能を持っていると確信しています。)しかし、あなたはアイデアを理解しました。基本的な商用スパム制御設定を介してメールを送信し、それが通過しない場合は、ネットワークの外に出てはなりません。

また、Habeasのように、非スパムのアウトバウンドEメールの配信率を上げるのを支援できる会社もあります。


3

Googleにはこのためのツールとガイドラインがあります。:あなたはそれらを見つけることができ https://postmaster.google.com/登録をし、自分のドメイン名を確認し、GoogleはそのIPアドレスとドメインの個々のスコアリングを提供します。

バルク送信者のガイドライン

認証により、メッセージを正しく分類できます。認証されていない電子メールは、フィッシング詐欺に使用される偽造メッセージである可能性が高いため、拒否またはスパムフォルダーに配置される可能性があります。さらに、セキュリティ上の理由から、認証されていない添付ファイル付きのメールは完全に拒否される場合があります。

Gmailがあなたを識別できるようにするには:

  • 一貫したIPアドレスを使用してバルクメールを送信します。
  • メールを送信するIPアドレスの有効な逆引きDNSレコードを保持し、ドメインをポイントします。
  • 送信するすべての一括メールの「From:」ヘッダーで同じアドレスを使用します。次のこともお勧めします。

  • DKIMでメッセージに署名します。1024ビット未満のキーで署名されたメッセージは認証されません。

  • SPFレコードを公開します。
  • DMARCポリシーを公開します。

1

私は常に使用しています:https : //www.mail-tester.com/

それは私に電子メールを送る技術的な部分についてのフィードバックを与えます。SPFレコード、DKIM、スパマサシンスコアなどのように。何が必要かはわかっていますが、私は継続的にエラーを発生させ、mail-tester.comは何が問題なのかを簡単に理解できるようにしています。


0

できるようにするにはDMARCの SPFのためのチェックが合格するともされ整列のsendmailを使用するときは、必ずエンベロープ送信者アドレス(設定されていることを確認し-fたり-rして、ドメインと一致して何かにパラメータ)をFrom:先頭アドレス。

PHPの場合:

mail()5番目のパラメーターを設定せずにPHPの組み込み関数を使用すると、DMARC SPFチェックが正しく行われないと整列されなくなります。デフォルトでは、sendmailはWebサーバーのユーザーをRFC5321 .MailFrom / Return Pathヘッダーとしてメールを送信します。

たとえばdomain.comhost.comWebサーバーでWeb サイトをホストしているとします。追加のパラメーターパラメーターを設定しない場合:

mail($to,$subject,$message,$headers); // Wrong way

電子メールの受信者は、次のメールヘッダーを持つ電子メールを受信します。

Return-Path: <your-website-user@server.host.com>
From: <your-website-user@domain.com>

これはSPFチェックに合格しますが、(domain.comとhost.comが一致しないため)調整されません。つまり、DMARC SPFチェックは調整されていないため失敗します。

代わりに、PHP 関数に5番目のパラメーターを含めて、エンベロープ送信者アドレスをsendmailに渡す必要があります。mail()次に例を示します。

mail($to,$subject,$message,$headers, '-r bounce_email@domain.com'); // Right way

この場合、電子メールの受信者は次のメールヘッダーを持つ電子メールを受信します。

Return-Path: <bounce_email@domain.com>
From: <your-website-user@domain.com>

これらのヘッダーの両方にからのアドレスが含まれているためdomain.com、SPFは通過し、アラインされます。つまり、DMARCもSPFチェックに合格します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.