Rubyと筋肉とギターとわたし

エンジニア二年目の雑魚です。プログラミング・ギター・筋トレのことをメインにブログを書いていきます。

【GCE】SendgridをGCPのlauncherで連携せずに使う

f:id:rdwbocungelt5:20180727094804j:plain

どうもてぃです。

今回は自分でアカウント登録したSendgridとGCEを連携させてメールを送信したいと思います。

準備

今回はGCP上のMarketplace検索すると使えるLauncherであるSendgridではなく、自分で登録したものを使います。

以下、リンク。

sendgrid.com

googleで検索すると上位には日本版Sendgridが出てきますが、これは使わないように。

というよりも、審査があってすぐには使えないのでとても不便。登録すると一瞬で使える本家(https://sendgrid.com)を使いましょう。

ここで、作成したAPIキーやら、usernameやらパスワードをしっかりメモっておくこと。

はまった

準備ができたら、公式に書いてある通りの順序でやっていきました。

cloud.google.com

僕はSendgridのAPIキーを取得して、それを/etc/postfix/sasl_passwdに設置しました。

Railsの本番環境を作っていてどうせAPIキーを使う予定だったので。

mailxでメール送信

設定を終えて、問題ないかmailxを使ってメール送信してみました。

# echo 'テストメールです' | mail -s 'テストめーる' mailaddress@gmail.com
# send-mail: 550 Unauthenticated senders not allowed

何故か送れない。

maillogも確認してみる。

# tail /var/log/maillog

Jan 21 05:09:09 instance-1 postfix/master[11145]: daemon started -- version 2.10.1, configuration /etc/postfix
Jan 21 05:09:40 instance-1 sSMTP[11153]: 550 Unauthenticated senders not allowed

ssmtpでの550が出てる。

対処法

Sendgrid公式に書いてありました。

今回は、GCPで予め用意されているものを使わず、自分で一から設定したので発生したのかも。

前やった時はGCPのSendgrid公式ドキュメントだけで問題なくいけたから。

sendgrid.com

ここで、/etc/ssmtp/ssmtp.confを設定すればおk。

ただし、今回はGCPなのでmailhub=smtp.sendgrid.net:587のポートを2525に変えてあげる。

正しくはmailhub=smtp.sendgrid.net:2525です。

解決!

いろいろ記事とか検索したけど、やっぱり公式ドキュメントを見るのが一番早いですね。

コマンドでメール送れたので、今度はRails側からも送ってみたいと思います。

ではでは。