【概要】
1)自前で運用しているツール(BitwardenとかMattermostとか)のシステムメール送信を、サーバ腹持ちのSMTPサーバ(Postfixとか)ではなくsmtp.gmail.comを利用して送信したい。
2)送信時のfromアドレスがGWSのユーザ名になってしまうので、no-reply@からの送信としたい。
【参照】
https://itblogdsi.blog.fc2.com/blog-entry-470.html
https://kahoo.blog/howto-use-google-workspace-for-rental-server/#2
【やったこと】
1)アプリパスワードの作成
SMTPを利用するGoogleアカウント(hogehoge@example.com)にて
[Google アカウントを管理]-[セキュリティ]-[アプリパスワード]で
サービス名を入力して「生成」→16桁の文字列が得られます。
メール送信だけであれば、
- smtp host:smtp.gmail.com
- smtp port:587
- ユーザ名:hogehoge@example.com
- パスワード:16桁のアプリパスワード
で送信可能ですが、このまま使うとメール送信時にhogehoge@example.comからの送信となってしまう(※)ため、よくあるno-reply@example.comからの送信とするため以下の作業を追加で行いました。
※各アプリケーションのシステムメールの設定でReplyToAddressなどにno-reply@example.comを設定すると、メールヘッダのX-Google-Original-From にno-reply@example.comが入って届くようになりますが、この時点ではメールのFromはhogehoge@example.comのままです。
2)GWS管理アカウントでSMTP利用ユーザに対し「予備のメールアドレス」を追加
AdminユーザでGoogleWorkspaceを開き、「予備のメールアドレスを追加」
でユーザー(今回はhogehoge@example.com)を指定して続行
今回は予備のメールとして
no-reply@example.com
を登録。
3)SMTP利用ユーザ自身のアカウントに予備のメールアドレスを「他のメールアドレスを追加」として追加する
ユーザー(hogehoge@example.com)のGmailの設定ページに行き、
「アカウント」タブのところで[他のメールアドレスを追加]として上記で追加した
no-reply@example.com
を追加します(この時名前はブランクとしています。また「エイリアスとして扱います」はONのままとします)
これで送信されたメールのFromがno-reply@example.comとなりました。
[アプリケーション側設定例]
■Bitwarden
global.override.env
globalSettings__mail__replyToEmail=no-reply@example.com globalSettings__mail__smtp__host=smtp.gmail.com globalSettings__mail__smtp__port=587 globalSettings__mail__smtp__username=hogehoge@example.com globalSettings__mail__smtp__password=<アプリパスワード>
■Mattermost
config.json
"FeedbackEmail": "no-reply@example.com", "ReplyToAddress": "no-reply@example.com", "FeedbackOrganization": "", "EnableSMTPAuth": true, "SMTPUsername": "hogehoge@example.com", "SMTPPassword": "<アプリパスワード>", "SMTPServer": "smtp.gmail.com", "SMTPPort": "587", "SMTPServerTimeout": 10, "ConnectionSecurity": "STARTTLS",
■事後的なメリット
hotehoge@example.comアカウントのGmail[送信済み]に各種システムメールの送信ログがまとめて入るため、管理が簡単になりました。