クラウド基盤の常田です。
はじめに
私の所属する部門では課題管理にRedmineを利用しています。Redmineでは更新情報をメールで送信するという機能がありますが今までメールの配信にはGmailを利用していました。先日、Redmineサーバを全面的にSoftLayer上に移行したことに伴いメールの送信機能を「SendGrid」へ移行しました。
SendGridは、メール配信サービスで確実に宛先に送りたい。大量のメールを配送したい、等のニーズに答えるサービスです。SoftLayerでは非常に安い価格でこのSendGridを利用する事が出来ます。今回はSMTPでの利用を記載していますがSendGridではAPIも用意されておりプログラム等から直接処理を実行することも可能です。
フリープランですと25000通/月までが利用可能です。今回はこのプランを利用してメール配送を行う設定を行いたいと思います。
設定
購入方法
購入については「管理ポータル」画面上のメニュー「Services」→「Email Delivery」を選択します。次にオーダ画面が表示されますので適切に項目を入力します。
画面では、表示されていませんが初期に利用する時には「25000 Email/Month」 のプランが表示されていますのでまずはそれをチェックしておきます。①メールアドレスはアカウントの確認用のメールアドレスになるので実際に存在するアドレスを記入しておきます。②Usernameについては、任意ですがメールアドレスと同じにしておいて問題ないように思われます。
設定の確認
特にこれ以上することなしに利用可能になります。SoftLayerの管理画面からは「Account Statistics」と「Account Infomation」を参照することが可能です。
このような形式で参照が出来ます。
管理ポータルでは、簡易な情報の参照が可能となっておりますが、SendGrid社のコンソールを利用する事により詳細な設定が可能になります。これはメニューから「Access Vendor Portal」を選択すると表示されます。このコンソールで先ほど設定したメールアドレスの変更が実施可能となります。SendGridを本格的に利用したい場合にはコンソールを利用する事になります。
今回の設定をコンソールで確認すると上記の画像のようになっていることがサイトで分かります。SendGirdを利用する場合に必要な情報は、「SMTPサーバ」、「Username」、そして最初に設定した「パスワード」です。
クライアント(Redmine)側の設定
今回はクライアントとしてサーバ上に構築されているRedmineからメールを配信するようにします。Docker上で構成されているので参考程度ですが以下のようなコマンドで実行されます。
#!/bin/sh
docker run --name redmine_test
-d -p 50099:80
-e "SMTP_USER=USERNAME@niandc.co.jp"
-e "SMTP_PASS=PASSWORD"
-e "SMTP_HOST=smtp.sendgrid.net"
-e "SMTP_PORT=587"
docrep:5000/tokida/redmine:1.4
実際の配送されるメール
実際にこれでRedmineからプロジェクトの追加などの作業の際にメールが送信されることを確認できました。個人のGmail宛に送信してみた結果をつけておきます。
Delivered-To: USERNAME@gmail.com
Received: by 10.50.85.107 with SMTP id g11csp323138igz;
Mon, 4 Aug 2014 22:39:47 -0700 (PDT)
X-Received: by 10.70.38.161 with SMTP id h1mr1584356pdk.142.1407217186733;
Mon, 04 Aug 2014 22:39:46 -0700 (PDT)
Return-Path: <bounces+1393971-5b84-USERNAME=gmail.com@sendgrid.softlayer.com>
Received: from o2.sendgrid.softlayer.com (o2.sendgrid.softlayer.com. [74.63.236.100])
by mx.google.com with SMTP id ci1si359359pdb.173.2014.08.04.22.39.46
for <USERNAME@gmail.com>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Mon, 04 Aug 2014 22:39:46 -0700 (PDT)
このような形式ですね。画面上からは
のような形で via sendgrid.softlayer.com という形で確認が出来ます。
まとめ
今回は送信量などは微々たるものなので、Sendmailやqmailなどのメールサーバ構築しても問題はないかもしれません。大量のメール配送が必要な場合により正確にメールが届くようにするためには今回のSendGridなどのサービスの利用を検討する価値があると思います。またSendGridは、SMTPだけでなくAPIからも操作でき確実にメールを届ける多数の仕組を備えています。