[GCP] Google Compute Engineからメール送信する方法 (SendGrid編)

※2017/06/24追記:こちらの記事は内容が古くなったので、リライトして会社の技術ブログに転載しました。今後は以下のURLを参照して下さい。


https://blog.interstellar.co.jp/2017/06/gcp-compute-engine-sendgrid/


Google Cloud Platform(GCP)からの外向きのSMTPはブロックされているので、Google Compute Engineで自前のSMTPサーバーを使用するのはいろいろ面倒です。
やるなら通常のSMTPで使用されるのと別のポートを使用して、外部にそのポートで受け付けるリレーサーバーでも立てるか、VPNで外部のSMTPサーバーにリレーさせるぐらいしか方法はありません。
このあたりの詳細は以下のURLに記載されています。
https://cloud.google.com/compute/docs/tutorials/sending-mail/

GCPからのメール送信には、
  1. サードパーティのサービスでSendGridというサービスを使用する
  2. Google Appsの契約がある場合はGoogle AppsのSMTPサーバーを使用する
のいずれかです。
うちの会社ではGoogle Apps契約してるので2でもいいんですが、Google Appsは送信数制限があったりするので、今回はSendGridで設定してみました。


SendGridについて

SendGridの詳細は以下のURLにあります。

 https://cloud.google.com/compute/docs/tutorials/sending-mail/using-sendgrid

上記ページのリンクからSendGridに登録すると、通常4,000通/月まで無料のところを25,000通/月まで無料で使用できます。 まあお得!
一般的な通知や小規模のサイトなら無料分で十分ですね。

追記(2016/01/26) : SendGridで直接登録した場合の無料枠が12,000通/月まで拡大されているようです。それでも上記リンクからのほうが約2倍お得ですね。


おおまかな設定の流れは以下のとおりです。

  1. SendGridに登録
  2. SMTP用の認証情報を作成
  3. 送信クライアントでSendGridのSMTPサーバーを設定

各ステップを以下で説明します。

SendGridの登録 


登録は以下のURLをブラウザで開き、ページ下の方のメニューから「FREE」を選びます。 FREEプランであれば、クレジットカードの入力は必要ありません。

http://sendgrid.com/partner/google?mbsy=gHNj

なお、このURLからでなく直接SendGridのサイトから登録すると、GCP用でなく一般的なSendGridアカウントとして登録され、無料枠が4,000通/月になってしまうので注意してください。

登録はユーザー名、メールアドレス、パスワードを入れるだけです。
しばらくすると、メールアドレスの確認のためのリンクが記載されたメールが届きますので、リンクをクリックしてメールアドレスの確認を完了します。
なお、自分の場合、最初入力したメールアドレスがなぜかInvalid MXorAと出てうまく登録できなかったんで、一旦Gmailのメールアドレスで登録しました。うまくいかない方はとりあえずGmailで登録してみるといいかもしれません。

あと、登録時のメールは大丈夫だったんですが、メールアドレス変更の確認のメールがGmailで迷惑メール判定されました…。おいおい。
もしメールが届かないという方は迷惑メールフォルダを!

アカウントの登録が完了してもすぐには使用できません。
SendGrid側で準備が完了するとメールが送られてくるので、それまでしばらく待ちます。 (自分が試した時は1時間ほどかかりました)

SendGridの設定 

SMTPとして使用するだけならば認証情報を作成するだけです。 手順は以下のとおりです。
  1.  SendGridのDashboard(https://app.sendgrid.com)を開きます。
  2. 左側のメニューからSettings->Credentialsを選びます。
  3. Add New Credentialを押します。
  4. 表示されるフォームにIDとパスワードを入力、下部のチェックボックスにはMAILの方にチェックを入れます。

以上で認証情報の作成は完了です。
ここで作成した認証情報はSMTPの設定で使用するので忘れないようにしましょう。

クライアントの設定

SMTPでの送信はGCPからの場合は以下のものを使用します。

  • Host: smtp.sendgrid.net
  • Port: 2525
  • SMTPSecurity: TLS

以上の情報と先に作成した認証情報を用い、SMTPクライアントに設定します。

以上で設定は完了です。 とっても簡単ですねー。
日本の携帯電話キャリアとかのフィルタは考慮されてないようですが、ちょっとした用途でメール送信するだけならこれで十分ですね。
自前のメールサーバー立てて運用するのも厄介ですからねー。


コメント