1

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

PHPmailerの使用をお勧めしますか?

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

4

5 に答える 5

7

TL; DR:特効薬はありません。PHPで電子メールを作成する方法を学ぶことができるからといって、それが誰かのメールボックスにルーティングされたり、受け入れられたりすることを保証するものではありません。成功は評判に基づいており、単一の修正ではありません。

私は(編集:だった)メールサーバーエンジニアであり、SpamAssassinルールを作成し、電子メールを送受信する顧客に深刻な問題を抱えています。

受信者のメールサーバーは電子メールをスキャンして、属性と「履歴の問題」(メールエージェントの不足、WebサーバーのIPからの送信など)を探します。これらは「ポイント」を取得します。ポイントの総数が比較され、受信者のサーバーは次の1つ以上を実行できます。

  • リストアイテム
  • SMTP中に拒否されました。
  • スパムフォルダにルーティングされ、
  • 受信トレイにルーティングされましたが、「SPAM」とタグ付けされています
  • ブラックホール(受け入れられ、その後不思議なことに失われた)。

「ポイント」(スコア)は、特定のスパム対策ソリューションに対する何かを意味するだけです。公開テストはありません。できる限りすべての問題を修正すれば、成功は上がります。

*一番の問題は、受信者のSMTPサーバーに直接メールを送信しないことです。このネットワークスペースは99.9%のスパムを送信します。電子メールをスキャンするにはお金がかかるため、優れた電子メール管理者はそのような接続をブロックまたは拒否します。

ソースIPの「修正」は次のとおりです。SMTPゲートウェイを使用します。ゲートウェイは、ISPメールサーバーまたは商用サービスにすることができます。まず、利用規約を確認してください。これらは頻繁に悪用されるため、認証されたWebフォームを使用して電子メールを送信することを禁止する場合があります(「誰かが私をハッキングした」というのは言い訳にはなりません)。

メールホスティングを使用している場合は、次の手順を実行します。たとえば、「website-notification@websitedomain.com」というメールボックスを作成します。好きなように呼んでください。ここで、PHPスクリプトが、 Authenticated SMTPを使用して、そのアドレスを介して電子メールを送信するようにします。PHPからAuthenticatedSMTPを使用する方法を学習するプロセスは、学習演習として残しておきます。オンラインには多くのチュートリアルがあります)。

有効なSMTPサーバーを介して電子メールを送信すると、そのメールはSMTPゲートウェイから「発信元」として表示されます。スクリプトからのものとは見なされません。しかし、これで話は終わりではありません

  1. 他の誰かが指摘したように、To:From:Subject:やDate:などの表示ヘッダーが欠落していないことを確認してください。厳密に言えば、これらのヘッダーは電子メールのハンドシェイクでは「必須」ではありませんが、実際には、評判の良い電子メールソフトウェアでこれらのヘッダーが省略されることはありません。また、日付は標準の日付形式である必要があります。そうでない場合、一部のスパムフィルターはそれにフラグを立てます。

このトピックは、「エンベロープヘッダー」(SMTPハンドシェイクの非表示のもの)と混同しないでください。これスコアに影響を与える可能性があります。SMTPゲートウェイを使用すると、通常これが処理されます(受信者のメールサーバーがゲートウェイホストとハンドシェイクするため)。

  1. FROMアドレスは有効である必要があります。偽のドメインを使用しないでください。ドメイン名を偽のメールボックス名と一緒に使用しないでください。一部のスパム対策ソフトウェアは、「送信者検証」を実行して、差出人アドレスが偽物か偽物かをテストします(単純化されすぎているため、返信を送信して、それを受け入れるかどうかを確認します)。

一番の間違いは、差出人アドレスを「noreply@yourdomain.com」として設定し、そのメールボックスを作成しないことです。それが起こると、あなたの電子メールの全員の「送信者検証」は失敗し、あなたは彼らのトラックをカバーしているスパマーのように見えます。

  1. ドメインDNSにSPFレコードがある場合は、ドメインに電子メールを送信する可能性のあるすべてのIPがリストされていることを100%確認してください。これは技術的なトピックです。有効で正しいSPFレコードがあると、配信可能性が少し向上します。しかし、誤った(誤った)SPFレコードを誤解して作成すると、状況はさらに悪化します。これを使用する前に、時間をかけて理解してください。

  2. 実際の住所または私書箱を使用している場合は、回避できる場合は「ドメイン登録プライバシー」または「ドメインプロキシ」サービスを使用しないでください。これが書かれたとき(2011年)匿名化サービスがあなたのメールをブロックする、または「タグ付きスパム」にする可能性があることは非常に真実でした。これは今日ではあまり真実ではありませんが、それでも検討する価値があります。

  3. メールサーバーのIPアドレスを把握し、SpamCop、SpamHaus、またはBarracudaスパムブラックリストで「ブラックリストに登録」されていないことを定期的に確認してください。詳細についてはGoogle。監視サービスと、警告を発するスクリプトがあります。しかし、これらのリストに載っている場合、それはあなたが監視していなかった何かが起こっていることを意味します...

言ったように、簡単な答えはありません。:)

于 2011-08-11T15:00:03.217 に答える
3

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

1)送信元のIPは、スパムのブラックリストに登録されています(共有ホスティングでよく発生します)

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

(多くの場合、定評のあるサイトからのニュースレターもスパムになってしまうことに注意してください)。

専用IPの場合、ドメイン名と一致するようにIPのRDNSを設定すると、問題が解決する可能性が非常に高くなります。もう1つの通常の方法は、受信者にアラートを送信して(受信者がWebサイトを購読している場合)、スラッシュ/スパムフォルダーを確認し、メールアカウントに電子メールアドレスをホワイトリストに登録することです。

よろしく、

JP

于 2010-12-25T06:48:23.250 に答える
3

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);
于 2010-12-25T06:54:17.860 に答える
0

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

于 2010-12-25T06:45:47.070 に答える
0

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

于 2010-12-25T07:11:39.213 に答える