概要
新しくSendGridを使ってメール配送するときの参考資料とかまとめ
SendGridとは
クラウディなメール配送サービス。
メールの運用は自前でやろうとすると辛い。
その辛い運用をお金で解決出来るサービス。
webapiとかsmtpapiとかpostfix等のMTAからも使えるので導入が簡単。
メールの運用が辛いのとSendGridを使うと良いという話は以下が参考になる。
http://qiita.com/koichiro/items/d65ac1af03b9063f0592
SendGridを試す
テスト用であれば本家の [Try for Free]からサクッと始める事が出来る
https://sendgrid.com/
SendGrid本家を使う場合、ドルで請求される。
本格的に使う場合は社内稟議とか諸々課題になるので
本番用としては正規代理店の構造計画研究所を利用するのが良いと思う。
https://sendgrid.kke.co.jp/
サーバからSendGrid経由でメールを送る方法
サーバからの送り方は3種類になる
- web-apiを叩く
- smtp-apiを叩く
- MTAを使う(smtp-api)
web-apiでは文字コードがUTF8固定になるのでガラケー等で利用しているキャリアメールに送る場合は文字化けしないか注意が必要。
また、アプリケーションからweb-api/smtp-apiを叩く場合、ネットワーク障害とか一時的にサーバ<=>SendGridで疎通が取れない時に再送する処理を実装する必要がある。
それが面倒であれば、sendmail/postfix等のMTAを使うのがてっとり速いと思われる。
https://sendgrid.kke.co.jp/docs/Integrate/Mail_Servers/postfix.html
https://sendgrid.kke.co.jp/docs/Tutorials/A_Transaction_Mail/send_transaction_mail.html
APIキーの発行について
API仕様についての情報が新旧わかりにくかったので記載。
メール送信する際のSendGridの認証には2016/05現在はapi-v3の[API Keys]を利用するのが良い。
https://sendgrid.kke.co.jp/blog/?p=3659
https://sendgrid.kke.co.jp/docs/Tutorials/A_Transaction_Mail/manage_api_key.html
SendGridではapi-v3以前では[Credentials]でapi認証してたもよう。
ただ、[Credentials]は細かく権限設定出来ず、所謂 ReadOnlyとか送信専用的な権限を設定出来ない。
api-v3からは[API Keys]で、少々細かく権限管理出来るようになった
万一ユーザ名、パスワードが流出するとマズいので基本的に権限を絞ったAPIキーを使いましょう。
メールの到達精度を高める方法
用途によって異なると思うけれど、例えば一般ユーザ宛にメール配送したい場合メールの到達精度は大きな課題になる。
SendGridを使えば全て解決するわけではなく、精度を高めるための施策は必要。
独自ドメインを使ってメール送信する場合、最低限[Domain Whitelabel] をやっておきましょう。
https://sendgrid.kke.co.jp/docs/Tutorials/D_Improve_Deliverability/using_whitelabel.html
SendGridのプランによって固定IPアドレスを取得できるので
その場合は[IP Whitelabel]も設定しましょう。
アカウント周り
例えばサービス毎にキャパシティを設定したい、課金額を把握したいという場合はサービス毎にアカウントを発行するイメージを持つと思う。
SendGridではサブユーザというものが作れるので、アカウントを一々発行せずにサービス毎にサブユーザを発行するとよい。
https://sendgrid.kke.co.jp/docs/User_Manual_JP/Settings/Subusers/index.html