電子メールによるユーザー操作を必要とする Web アプリケーションを作成しています。電子メールの処理について学習するためのベスト プラクティスまたは推奨される情報源があるかどうかに興味があります。Python でアプリケーションを作成していますが、使用するメール サーバーや、自動処理を考慮してメッセージや件名をフォーマットする方法がわかりません。また、バウンスバックの処理に関するガイダンスも探しています。
2 に答える
電子メールを自動的に送信する方法については、かなり深刻な問題がいくつかあります。
メール ライブラリを使用します。Python には「メール」と呼ばれるものが含まれています。これはあなたの友達です。あなたが悲惨なほど悪いことをするのを防いでくれます。Python Manualから例を読んでください。
スパム フィルターによるブロックを防ぐためのいくつかのポイント:
常に有効なメールアドレスから送信してください。このアドレスに電子メールを送信して受信できる必要があります (受信後に /dev/null に移動できますが、そこで /deliver/ を実行できる必要があります)。これにより、送信者アドレス検証を行うスパム フィルターがメールをブロックするのを防ぐことができます。
server.sendmail(fromaddr, [toaddr]) 行で送信元のメール アドレスがバウンス先になります。電子メールの From: 行はまったく別のアドレスであり、ユーザーが「Reply:」を押したときにメールが送信される場所です。これを有利に利用すると、バウンスはある場所に送られ、返信は別の場所に送られます。
ローカル メール サーバーにメールを送信します。postfix をお勧めします。このローカル サーバーはメールを受信し、アップストリーム サーバーに送信します。ローカルサーバーに配信されたら、プログラムの観点から「送信済み」として扱います。
評判の良いデータセンターの静的 IP にあるサイトがある場合は、メールをインターネットに直接中継することを恐れないでください。スクリプト キディやスパマーでいっぱいのデータセンターにいる場合は、評判の良いパブリック MTA 経由でこのメールを中継する必要があります。問題なく解決できることを願っています。
HTML だけでメールを送信しないでください。常にプレーンと HTML で送信するか、プレーンのみで送信してください。親切にしてください、私はテキストのみの電子メールクライアントを使用しています。あなたは私を悩ませたくありません.
メール ドメインで SPF を実行していないことを確認するか、サーバーがメールを送信できるように設定します。これを行うには、ドメインで TXT ルックアップを実行します。
$ dig google.com txt
...snip...
;; ANSWER SECTION:
google.com. 300 IN TXT "v=spf1 include:_netblocks.google.com ~all"
その結果からわかるように、そこには SPF レコードがあります。SPF がない場合、TXT レコードはありません。ウィキペディアで SPF の詳細を参照してください。
それが役立つことを願っています。
自動メール処理に関する一般的な情報...
まず、メール サーバーの「ブランド」自体は、メールのブロードキャストや受信にはそれほど重要ではありません。それらはすべて、標準の smtp / pop3 通信プロトコルをサポートしています。そのほとんどは IMAP をサポートしており、ある程度のスパム フィルタリング機能を備えています。とはいえ、現世代の電子メール サーバーを使用してみてください。
次に、スパムを減らすために、多くの受信メール サーバーは、メール アカウントが存在しないと応答する代わりに、単純にメッセージを破棄することに注意してください。つまり、受信できない場合があります。
スパム フィルターを通過することは芸術であることを心に留めておいてください。重複したメッセージ、キーワードまたはその他のコンテンツに基づいてスパムのように見えるメッセージなどに対する多数の isp の監視。これは、送信されるメッセージの量とは無関係な場合があります。正規のメールであっても、コピーが 50 件程度のメッセージが AOL によってブロックされるのを見てきました。したがって、テストはあなたの友人であり、スパム対策技術に関するウィキペディアのこの記事を調べてください。次に、そのがらくたをしていないことを確認してください。
**
メッセージの処理に関しては、キューに入れられたシステムであることを覚えておいてください。POP3 経由でサーバーに接続して、メッセージを取得し、開き、何らかのアクションを実行し、メッセージを削除またはアーカイブして、先に進みます。
バウンスバックに関しては、ほとんどの作業をメール サーバーに任せてください。メッセージを配信できない場合に、サーバー上の特定の電子メール アカウントに通知するように構成できるはずです。そのアカウントを定期的に確認し、必要に応じて配信不能レポートを処理できます。