キャンペーンの申し込みやテスト用などで一時的に受信できれば良いメールアドレスをクイックに用意する手順になります。
前提として、既にDocker Mailserver環境があるものとして進めます。Dicker Mailserverについては以下の記事を参照ください。こちらもサクッと設定できる内容になっています。
Docker Mailserverを構築 前提 既に[email protected]でメールが受信できる環境がある。 この時、一時的な受信用メールアドレスのパターンは以下のようになると思います。ちなみに、全てのパターンでクイックに実施できます。
パターン1: 受信したメールの確認は既存のEmailアドレスで実施する この方式は、メールクライアントは既存のまま使えるので便利。端的に言うと、エイリアスを作って、既存メールアカウントに飛ばす。
ステップ1: 受信するメールアカウントを決める 例) [email protected]
ステップ2: 受信メールアドレスのDNSにMXレコードを追加。 MXに追加済みのメールドメイン(つまり、もう実際に使っているドメイン@xxxx.comで)で受信する場合はこのステップは不要。
向け先はDocker Mailserverのホスト
例) other.domain.com. 300 IN MX 50 mail.example.com.
もちろん、other.domain.comのDNS権威サーバ上のレコードとして上記を追加。 mail.example.comはDocker Mailserverのホスト名
ステップ3: Docker Mailserverにアカウントを追加 実質は、エイリアスを追加することになる。
ここの例では、
[email protected] で受け取って、 [email protected] に流すので、 (Docker Mailserver上で) $ ./setup alias add [email protected] [email protected] 以上でおしまい。DNSにMXレコード追加するところが若干面倒。
パターン2: 受信したメールの確認はそのEmailアドレスで実施する パターン1のステップ3でDocker Mailserverのsetupコマンドを以下の通り変えるだけ。あとは同じ。
(Docker Mailserver上で) $ ./setup email add [email protected] まとめ 慣れると1分くらいでできる。 ドメインごとにトラックされるのが嫌な場合は、捨てドメインを用意しておく。...
Docker Mailserverを構築した後は、メールアドレスの追加・削除が非常にシンプルにできる。
基本的には、Docker Mailserverに含まれるsetup.shコマンドで管理可能になっている。
メールアカウントの追加・削除・管理 ### 追加 $ ./setup.sh email add [email protected] [パスワードの入力] ### パスワード変更 $ ./setup.sh email update [email protected] [新しいパスワードの入力] ### リスト $ ./setup.sh email list [email protected] * [email protected] ( 572K / ~ ) [0%] ### 削除 $ ./setup.sh email del [email protected] メールアカウントの追加後はdockerコンテナの再起動せずに変更が適用される。
エイリアスの追加・削除・管理 メールアドレス・アカウントを作るのではなく、複数のメールアカウントの受信を一つのメールアカウントで対応したい場合は、エイリアスを使う。
### [email protected]宛のメール => [email protected]で受ける ./setup.sh alias add [email protected] [email protected] ### 確認 ./setup.sh alias list [email protected] [email protected] ./setup.sh email list * [email protected] ( 572K / ~ ) [0%] [ aliases -> desk@m....
前回の記事ではメール受信にフォーカスして、Docker Mailserverを構築する方法について書いた。今回は、送信部分について設定してく。
スパムメール対策で、どのクラウド/ISPのネットワークでも基本的にoutbound向けの25番ポートはブロックされている(もし開いていると、世界中のsmtpサーバにメールを送りつけるとこができてしまうので)。その辺の事情はこのページにまとまっている。そのため、自前でメールサーバを立ち上げると、ユーザー認証付きでメールをRelayするSMTPサーバ経由で送ることになる。
このメールRelayのサービスは、自分の加入しているプロバイダ(ISP)が提供してくれることもあるし、自分のGmailを使うケースもよく見ます。しかし、メール送信ではスパム対策として機能するSPF, DKIMなどの設定が必要で、これらのRalayサービスだとそこまで細かく対応してないことが多い。
このEmailのRelayサービスはマーケティングツールなどでも使われることから、色々なサービスがある。今回はMailjetを使ってみる。Mailjetは、一日あたりの送信メール数が200通まで無料で使える。使い方にもよるけど、個人として使うには、メール受信(つまりMailjetは無関係)がほとんどで、200通あれば事足りる。もちろん、SPF, DKIMレコードも自動的に生成してくれるので管理がとても楽だ。
1. Mailjetのアカウントを作成する Mailjet
メールアドレスとパスワードだけで、サインアップできる。 メールサービスなのに、登録のためにメールアドレスが必要というのは、「服を買いに行くための服」みたいなものだろうか。
2. MailjetでRelayホスト・アクセスキーを確認する MailjetのAccount Settingsを開いて、メニューパネルの中からSMTP and Sender Settingsに入る。
このページでRelayに
使うホスト名 ユーザー名 パスワード ポート番号(=587) を確認。
3. Docker Mailserverの設定 Docker Mailserverのdocumentページに従って、mailserver.envファイルの以下の項目を設定する。
RELAY_HOST RELAY_PORT RELAY_USER RELAY_PASSWORD 設定ファイルを変更した後、再起動。
$ docker-compose down $ docker-compose up -d 4. SPF, DKIMの設定 MailjetはSPF, DKIMのレコードも自動で生成してくれる。後は、その値をDNSに登録するだけだ。なんて楽なんだ!
再び、MailjetのAccount Settingsから、今度は、Setuo SPF/DKIM Authenticationに飛ぶ。 そこに、全てが書いてあるので、その通りにDNS側を設定。
しかも、Mailjet側から設定の検証もしてくれる。 問題なければ下記の通り、青信号になる。
5. メール送信テスト あとはEmailのクライアントから送信できるかを確認する。 送信数や送信先などは、全てMailjetのページから確認できる。 統計情報を出してくれるものありがたい(?)。
参考 Mailjet Docker Mailserver
何かしらサービスを申し込む際にはメールアドレスが必要になる。 Docker Mailserverを使って、Docker環境でさくっと立てる方法を書いていく。
今日日、どのISPでもクラウドでも、スパム対策でデフォルトでOutboundのport:25が開いていない。ので、何も考えずにサーバーを立てると、Emailの送信ができない。けど、受信だけできれば十分な場合が多いので問題ない。
送信できるEmail環境構築については、この記事で解説しています。
要件 基本的にdockerおよびdocker-composeの環境があればよい。
docker docker-compose 0. 今回想定する環境設定の値 項目 値 メールサーバ OS Ubuntu Linux メールサーバ Public IP 11.22.33.44 作業ディレクトリ /home/ubuntu/docker-mailserver メールサーバのホスト名 mailserver.example.com メールアドレスのドメイン @m.example.com メールアドレス [email protected] 1. Linuxホストを用意する PublicからアクセスできるLinuxマシンを用意する。ここではAWSのEC2にUbuntu環境を想定する。
LinuxホストのPublic IP: 11.22.33.44 2. LinuxホストのNWポートを開ける 以下のポートの受信を許可する。
Inbound port: 25, 80, 143, 587, 993 EC2の場合はセキュリティグループの設定をする。 port:80はSSL証明書(Let’s Encrypt)の取得・更新のために開けておく。...