質問

私はテストアプリケーションを開発し、すべてを職場のPCで実行しています。会社のメールサーバーを使用してメールを送信しています。通常通り正常に動作します。私のPCからメールサーバーにアクセスできない場合などの状況にどう対処するか疑問に思っていました。私が読んだ限りでは、Rails アプリケーションはメールを送信するだけで終わりです。メールが受信者に届いたかどうか、受信者のメール ID が正しかったかどうかなどを知る方法はありません。このシナリオに対処する方法について何か考えはありますか?ありがとう、よろしく、アンジャリ

役に立ちましたか?

解決

ここでは 2 つの問題をごちゃ混ぜにしていると思いますが、それらは実際には全く関連性がありません。

最初の問題 - 電子メールが企業メール サーバーによって受け入れられたことを確認する (この場合はメールリレーです)。これを解決するには、メッセージのローカル キューを構築し (メッセージをデータベース、キュー サーバーなどに保存します)、個別のワーカー プロセスを使用してメッセージを送信します。ワーカー プロセスは、キューから各メッセージを取得し、配信を試行し、削除します。メールリレーによって受け入れられた場合のみ。

または、プロセスの低レベルの手動制御が必要ない場合は、マシン上に単純なローカル メール サーバーをセットアップし、企業のメール リレーに電子メールを直接送信する場合は、その代わりにローカル メール サーバーに送信するだけです。その後、電子メールが企業に適切に配信されたかどうかを確認します。

ただし、どちらの場合も、電子メール アドレスが有効かどうか、ユーザーのメールボックスがいっぱいではないかなど、メッセージが最終受信者に配信された場所に関する情報は取得できません。

2 番目の問題 - メール配信エラーを追跡する。 この問題を適切かつ完全に解決するには、リモート サーバーから返送されたすべてのメールを捕捉して分析する必要があります。多くのエラーは、電子メールが送信された時点では不明ですが、後でメール バウンスの形で戻ってきます。 。これらのバウンスを捕捉して追跡すると、メールボックスがいっぱいになった、無効なメール、単なる一時的な配信の失敗などのエラーを捕捉できるようになります。

これはメール リスト管理ソフトウェアで行われる方法です。たとえば、phpList はまったく同じ方法で動作します。

他のヒント

私はこの問題について考えました。私の考えは、私はすでにそれを行うためのコードを持っている(「メールキュー」と呼ばれる別のモデルにメッセージを格納し、社内のメールサーバーが利用可能な場合にのみ、そのメールキューからメッセージを引き出して、削除しますRubyスクリプトを実行するようにしました私は信じている)。もちろん、もっと良い方法がある場合は、私もそれを歓迎する。

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