どうもてぃです。
今回は自分でアカウント登録したSendgridとGCEを連携させてメールを送信したいと思います。
準備
今回はGCP上のMarketplace検索すると使えるLauncherであるSendgridではなく、自分で登録したものを使います。
以下、リンク。
googleで検索すると上位には日本版Sendgridが出てきますが、これは使わないように。
というよりも、審査があってすぐには使えないのでとても不便。登録すると一瞬で使える本家(https://sendgrid.com)を使いましょう。
ここで、作成したAPIキーやら、usernameやらパスワードをしっかりメモっておくこと。
はまった
準備ができたら、公式に書いてある通りの順序でやっていきました。
僕は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公式ドキュメントだけで問題なくいけたから。
ここで、/etc/ssmtp/ssmtp.conf
を設定すればおk。
ただし、今回はGCPなのでmailhub=smtp.sendgrid.net:587
のポートを2525に変えてあげる。
正しくはmailhub=smtp.sendgrid.net:2525
です。
解決!
いろいろ記事とか検索したけど、やっぱり公式ドキュメントを見るのが一番早いですね。
コマンドでメール送れたので、今度はRails側からも送ってみたいと思います。
ではでは。