バウンス処理の設定
Discourse は、バウンスしたEメールを処理するために Variable envelope return path (VERP) という技術を使用しています。
VERP を有効にするには、「reply by email address」サイト設定を、+ 記号を使用するEメールアドレスのテンプレートに設定します。デフォルトの
replies+%{reply_key}@discourse.example.com
…で問題ありません。ご自身または会社のEメールサーバーを使用している場合は、これで完了です ![]()
お使いの Discourse インスタンスは、このアドレスに送信されたEメールを受信できる必要があります。これは POP 経由で機能するはずですが、セルフホストサイトのダイレクト配信着信メール を強くお勧めします。
ただし、サードパーティのEメールサービスを使用している場合は、VERP を有効にするか、以下の方法でWebhookを有効にする必要があります。
MailGun
- MailGun にログインし、ダッシュボード に移動します。左側の列で Sending → Webhooks ページを探します。
- Configuration タブを選択し、HTTP signing key をコピーします。
- Discourseサイト内で、Mailgun API key サイト設定に、コピーしたHTTP signing keyを設定します。
- Mailgun に戻り、Add webhook ボタン(Domain-level を選択)をクリックし、HTTP post URL を
https://your.discourse/webhooks/mailgunに設定します。これをテストします。 Permanent FailureとTemporary failureの両方を選択し、ドメインを再確認してから、Webhook を作成します。
SendGrid
- SendGrid にログインし、Mail Settings に移動します。
- Event Webhook 設定を展開し、まだ有効になっていない場合は有効にします。
- edit をクリックして、HTTP POST URL を
http://your.discourse/webhooks/sendgridに設定します。 - 以下の3つのアクションを選択したことを確認します:
Dropped、Deferred、Bounced。
をクリックして変更を保存します。
MailJet
- MailJet にログインし、event tracking に移動します。
- bounce イベントにチェックを入れます。
- endpoint URL を
http://your.discourse/webhooks/mailjetに設定します。 - group events 列の
にチェックを入れます。 - save ボタンをクリックします。
SparkPost
- SparkPost にログインし、ダッシュボード に移動します。
- 左側のメニューアイコンから Account を選択します。
- メニューから Webhooks を選択します ( SparkPost )。
- New Webhook を選択します。
- Webhook Name に
Discourse Forumのようなわかりやすい値を入力します。 - Target URL として
http://your.discourse/webhooks/sparkpostを入力します。 - Add Webhook を選択します。
Amazon Simple Email Service (AWS SES)
- Discourse側:
- 上記に従って
reply by email enabledとreply by email addressを設定します。 manual polling enabledを設定します。
- 上記に従って
- AWS側:
- SNS トピックを作成します。
- 作成したトピックに対して、HTTPS で
https://your.discourse/webhooks/awsを指す SNS サブスクリプションを作成します。 - SES → Verified Identities に移動し、サイトのドメインを選択し、Notifications タブに移動します。フィードバック通知を編集します。Bounce feedback と Complaint feedback を、作成した SNS トピックに設定します。
Postmark
- Postmark にログインし、Discourse のメール送信に使用される server を選択します。
- Discourse のメールに関連付けられているメッセージストリーム、通常は Default Transactional Stream を選択します。
- Webhooks をクリックします。
- Add webhook をクリックします。
- Webhook URL として
http://your.discourse/webhooks/postmarkを入力します。 - Which events should we send? の下で、Delivery と Spam complaint にチェックを入れます。
- 下にスクロールし、Save webhook をクリックします。
バウンスのテスト
すべてが機能していることを確認するために、次を実行します。
- サイトで、明らかに間違ったEメール形式(例:
bademail@obviously-invalid-domain.comまたはclearly.nobody.has.this.email.address@gmail.com)で新しいアカウントにサインアップします。 - メールが完全にバウンスするまでしばらく待ちます (必要であればプロバイダーのログを確認してください – 通常は「warn」または「error」ログレベルに表示されます)。
- サイトの
/admin/email/bouncedを確認し、バウンスが検出されたことを確認します。Eメールプロバイダーのリトライ回数や特定のロジックによっては、最大48時間かかる場合があることに注意してください。
バウンスの設定
バウンス処理は、これらのサイト設定を使用してカスタマイズできます。
- soft bounce score: 一時的バウンスがEメールアドレスから受信されたときに、ユーザーの「バウンススコア」に追加されるポイント数。
- hard bounce score: 永続的 (または不明) バウンスが受信されたときに、ユーザーの「バウンススコア」に追加されるポイント数。
- reset bounce score after days: ユーザーの「バウンススコア」を 0 にリセットするまでに、バウンスを受信しない日数。
- bounce score threshold: 緊急ではないメールをユーザーに送信するのを停止するスコアしきい値。
最終レビュー: @SaraDev 2022-07-19T20:00:00Z