Misskey・Mastodon鯖缶のためのMailgunの使い方

## 自分のMisskey・Mastodonのインスタンスを立てたい！でもメール鯖って何それ？

Misskey・Mastodonのインスタンスを立てるにはメアド検証・通知のためのメールサーバーが必要になりますね。
自分でSMTPサーバーを立ててみるのもいいけど面倒くさいし、ほぼ無料のMailgunがおすすめですよ。

### はじめに

もちろんメアドですから自分のドメイン名が必要となります。ここでは`test.tsuki.network`と使います。
あと、会員登録のためクレカが必要です。多分デビットカードでもOK。

### Mailgunとは

https://www.mailgun.com/
簡単に言って、一ヶ月に10,000件までは無料で様々な方法でメールを送ることができるサービスです。
送ることだけどはなく受け取ることもできますよ。
10,000件を超えたらどうなるのか？もちろんその分お金払わなきゃいけないんですが、そんなに送ったりするの？

### 使ってみる

Mailgunのホームページに行って、`SIGN UP`を押して、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/420084ad-7439-a647-f307-37ced194b4ac.png)
めっちゃ簡単だという会員登録を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/f42ceb8e-49c5-9e61-40d3-775e1993a239.png)
（簡単そう）

メール認証まで済ませてログインするとこういうの画面が出ます。（多分）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/d9742d3c-1882-a7fa-6778-7258465aa652.png)
皆さんは`Getting Started`の`Add a custom domain`に取り消し線がないはず。

そこを押すと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/103c9d79-8784-9497-26a3-61a8715aa231.png)
入力しますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/f993fd53-5031-fdab-c783-d4c410c453dc.png)
`Add Domain`を押したら変なページに飛べます。
やることは２つ、書いている通りDNS情報をアップデートして、待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/8c55ce5c-f71e-7c59-db04-cb44bd76e691.png)
こんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/9d747ad4-dc09-06e0-8a91-ecaa883766af.png)
もし使うドメイン名がサブドメインではなくrootドメイン名ならこんな感じで入力しますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/82b75b3f-c084-e1ae-8312-9225ab4c4562.png)

Mailgun社からドメイン名が検証されたらこんなメールが届きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/2d15c571-b70d-58cd-74a3-1073416ab889.png)

https://www.mailgun.com/ に行って、ログインして、Dashborad画面から`Domains`メニューに行くと新たに登録したドメイン名が`Active状態になってるので、詳細画面に行ってみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/a4832220-93d7-6dce-1792-85de35d92488.png)
（sandboxなんちゃら.mailgun.orgのやつは気にしないでください。テスト用で発行されるやつらしい）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/539908a3-b38c-53e2-e8bb-6a297740a92a.png)

問答無用で`Manage SMTP credentials`を押していいです。もちろんこのまま`Default SMTP Login`と`Default Password`を使っても宜しいですが、せっかくなので。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/515e412f-45dd-5c87-a8c6-6bf6930e5008.png)
もちろん初めてこのページに来たら`postmaster`アカウントしかありませんよ。追加するには`New SMTP Credential`を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/336226b8-9856-824d-10c7-85a37b8f2f44.png)
（簡単でしょう）

実はこれでほぼ終わってます。でもメールを送ったら、そのメアドでメールを受けることもやってみたいんじゃないですか。
上段バーの`Routes`に行って、`Create Route`ボタンを押すとこんなページに飛べます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/9cf2e1a0-0286-7b52-bf22-8e595309904d.png)
条件指定で特定のメアドにフォワードしてくれる機能です。
こんな感じでしたら自ドメインに来たメールをGMailで受け取ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/e215256f-9165-2453-ba61-06a131696b8b.png)

### MisskeyでMailgunを使う
Misskeyの管理画面→インスタンス設定にこういうものがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/3e9ea33e-9be9-3681-c294-96667788835b.png)
ONにして、こう設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/8d03e5d4-a49d-fd94-cf7c-b9e7d96b11e8.png)
保存を押せばすべてOK・・・のはず

### MastodonでMailgunを使う
[公式のガイド](https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md#email-service)もありますがあえて説明すると
`.env.production`にこういうふうに書きます。

```
SMTP_SERVER=smtp.mailgun.org
SMTP_PORT=587
SMTP_LOGIN=さっき作ったSMTPユーザー
SMTP_PASSWORD=blahblah
SMTP_FROM_ADDRESS=Mastodon <好きなメアド＠ドメイン名>
```
セーブしてMastodonプロセスを再起動または起動すればOK・・・のはず

### SMTP 設定の公式情報は？
ここ https://help.mailgun.com/hc/en-us/articles/203380100-Where-Can-I-Find-My-API-Key-and-SMTP-Credentials-
実は`Manage SMTP credentials`画面の右上にもあります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302240/b16ec2f7-b5de-fa10-a64f-996673f96d0a.png)

## まとめ
簡単でしょう？小学生もできますよ。多分。