# ユーザーメールドメインが多すぎて機能しないため、Mailgunドメインが無効になりました：どうすればよいですか？

**URL:** https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780
**Category:** Support
**Tags:** email
**Created:** [2020 年 10 月 20 日午後 7:46 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780 "2020-10-20T19:46:59Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2020 年 10 月 20 日午後 7:46 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/1 "2020-10-20T19:46:59Z")

</div>

こんにちは！

当フォーラムには、現在機能していない特定のドメインのメールアドレスを持つインポートされたユーザーが多数います。  
そのようなメールアドレスを持つユーザーは数千人に上ります。

これまで問題はありませんでしたが、「digest メールを何日間で抑制するか」の値を増やしたところ、機能しないドメインを持つ多くのユーザーを含む、大量の digest メールが送信されてしまいました。

その結果、メールの跳ね返りが多発し、Mailgun が私のドメインを無効化してしまいました。

この問題を解決し、再発を防ぐために、これらのアカウントに対してどのような対応をすべきでしょうか？これらのアカウントの多くは、まだフォーラムに戻ってきていない正当なユーザーに属しており、必ずしも放置されたアカウントとは限りません。

この問題により、修正されるまでユーザーはフォーラムに登録できません。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020 年 10 月 20 日午後 7:51 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/2 "2020-10-20T19:51:21Z")

</div>

[メールのバウンス処理](https://meta.discourse.org/t/handling-bouncing-e-mails/45343)をご覧ください

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2020 年 10 月 20 日午後 8:04 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/3 "2020-10-20T20:04:13Z")

</div>

なぜかこのトピックを検索で見つけられませんでした…パニックになったのかもしれません！😅

迅速な回答をどうもありがとうございます！

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020 年 10 月 20 日午後 8:20 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/4 "2020-10-20T20:20:06Z")

</div>

ただし、`bademail.domain` のような無数のメールアドレスがある場合、以下のような処理を行うのがよいでしょう。

```
rake posts:remap['bademail.domain', 'no-email.invalid']

```

詳しくは [Replace a string in all posts](https://meta.discourse.org/t/replace-a-string-in-all-posts/48729) をご覧ください。これにより、Discourse がそれらのメールアドレスに送信しないように設定されます。もう一つの有効な解決策は、以下のようになります。

```plaintext
bad = User.find_by_email     
# 該当するユーザーをすべて取得する検索条件を記述
bad.update_all(active: false)

```

既知の無効なメールアドレスを持つすべてのユーザーを無効化します。最初の部分の具体的な実装方法はすぐに思い浮かびませんが、それほど難しくないはずです。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2020 年 10 月 20 日午後 9:07 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/5 "2020-10-20T21:07:04Z")

</div>

はい、これらのメールドメインを削除するためにこの方法を考えていました。

Discourse のメソッドが `@no-email.invalid` という形式のメールアドレスを作成していることに気づきました:

> <https://github.com/discourse/discourse/blob/main/app/services/user_merger.rb#L364>

また、インポーターのベースクラスでは、わずかに異なる `@email.invalid` が使用されています:

> <https://github.com/discourse/discourse/blob/main/script/import_scripts/base.rb#L869>

1. Discourse がメールを送信する際、これら 2 つの異なる「ダミードメイン」はどちらも無視されますか？

2. 動作しないドメインを `@no-email.invalid` に置き換えるべきか、それとも `@email.invalid` にすべきか、あるいはどちらでも問題ありませんか？

@pfaffman さん、投稿内でマッピングを行う理由が、ユーザーのメールアドレスを変更するのではなく、なぜそうすべきなのか理解できていません… 🤔 もし何か見落としているのでなければ、これらのメールアドレスは投稿に含まれていないはずです。

もしそれが推奨される方法であれば、各プロファイルの `@brokendomains.com` 形式のアドレスを `@no-email.invalid` または `@email.invalid` に置き換えたいと考えています。どのように行うかは自分で調べられますが、どちらの「偽」ドメインを使用すべきか迷っています。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020 年 10 月 20 日午後 9:24 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/6 "2020-10-20T21:24:28Z")

</div>

> [@Canapin](#):
>
> なぜ **投稿** でリマップする必要があるのかわかりません

`posts:remap` はそのドメインをすべてのテーブルでリマップするものだと確信していますが、何らかのクラスに配置する必要があったようです。

あるいは、`UserEmails` テーブル（またはそれに相当するもの）に独自の置換ルールを書くこともできます。

`whatever.invalid` というアドレスは、世界中に「無効なアドレスである」と伝えるため、送信を試みないはずです。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2020 年 10 月 20 日午後 9:25 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/7 "2020-10-20T21:25:14Z")

</div>

なるほど、これで問題が解決するでしょうか？

```ruby
User.find_each do |u|
	if u.email.include? "@brokendomain.com"
		u.update(email: SecureRandom.hex + "@email.invalid")
	end
end

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020 年 10 月 20 日午後 10:12 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/8 "2020-10-20T22:12:17Z")

</div>

私はこうするかもしれません。

```plaintext
UserEmail.where("email like '%@brokendomain.com'").each do |e|
   e.update(email: SecureRandom.hex + "@email.invalid")
end

```

あなたの方法も機能するかもしれませんが、メールが別のモデルやテーブルに移された後に `u.email.include?` が使用可能になるように User モデルが更新されているかどうかは確信が持てません。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2020 年 10 月 20 日午後 10:22 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/9 "2020-10-20T22:22:43Z")

</div>

ターゲットのメールアドレスが返ってくるか確認するためにスクリプトを実行しましたが、問題なく動作しました。

特定のメールドメインを選択するクエリを使用しているため、あなたのスクリプトの方が私のものより高速であるはずです。

ご協力いただき、本当にありがとうございます 👍

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020 年 10 月 21 日午後 3:43 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/10 "2020-10-21T15:43:00Z")

</div>

おっと、私が意図していたのはこちらのリマップです。単に

```
  discourse remap old new

```

です。詳しくは [Change the domain name or rename your Discourse](https://meta.discourse.org/t/change-the-domain-name-or-rename-my-discourse/16098) をご覧ください。

上記の方法でも機能すると思いますが、UserEmails のソリューションの方がわずかに優れているかもしれません。

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2020 年 10 月 21 日午後 3:59 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/11 "2020-10-21T15:59:51Z")

</div>

> [@pfaffman](#):
>
> 上記の方法も機能すると思いますが、「UserEmails」ソリューションの方がわずかに優れているかもしれません。

ありがとうございます。私が採用したのはこちらの方法です。  
17,000 人のユーザーのうち 5,000 人以上が、そのようなメールドメインを持っていました。私が「\*\* digest メールを日数後に抑制\*\*」の設定を増やした際に、エラーメール（バウンス）の数が増えたのも当然です…

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [2020 年 10 月 27 日午前 11:05 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/12 "2020-10-27T11:05:56Z")

</div>

> [@pfaffman](#):
>
> `whatever.invalid` は無効なアドレスであることを世界に伝え、送信を試みないことは確かです。

これは `.invalid` で終わるものに対する Discourse の特別な処理であり、これは [予約](https://tools.ietf.org/html/rfc2606) された TLD です。

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2020 年 11 月 26 日午前 11:20 UTC](https://meta.discourse.org/t/too-many-user-emails-domains-not-working-lead-to-mailgun-domain-disabled-what-to-do/167780/13 "2020-11-26T11:20:35Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
