背景
Microsoftのoutlook.comのメールを使って、以下の機能を持つRedmineとメールを連携させたシステムを作っていました。
- メールが届くと、メール内容を元に自動でRedmineにチケット登録する
- 期限数日前に、Redmineからリマインドメールを送る
- チケットが発行されたりチケットの状態が変わると、関係者にメール通知する
2024年9月16日にOutlookのセキュリティが強化されました。このシステムはoutlook.comのベーシック認証(IDとパスワードによる認証)を使っていたため、メール連携機能が使えなくなってしまいました。
Outlookでは難しそうだったので、Gmailで同様のメール連携機能が使えるようにしました。
Redmineのメール連携機能
RedmineではSMTP・IMAPを使ってメールサービスと連携することができます。12
2024年9月16日以降、Outlookでは、ベーシック認証ではSMTP・IMAP認証ができなくなったので、他の方法を探す必要があります。
そこで、GmailでSMTP・IMAP認証を通すことにします。
Gmailで認証を通す方法
GmailもOutlook同様、現時点(2024年10月)では、標準ではベーシック認証でSMTP・IMAP認証を通すことができません。
その代わり、アプリパスワードを発行すると、GoogleのIDとアプリパスワードでSMTP・IMAP認証を通すことができるようになります。
アプリパスワードを発行するには、2段階認証が必須となります。
Redmineの設定方法
私が使っているsameersbn/redmineの場合はdocker-compose.yml
を以下のように記載します。
environment:
...
- SMTP_ENABLED=true
- SMTP_METHOD=smtp
- SMTP_DOMAIN=www.gmail.com
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=587
- SMTP_USER=メールアドレス
- SMTP_PASS=アプリパスワード
- SMTP_STARTTLS=true
- SMTP_AUTHENTICATION=:login
- IMAP_ENABLED=true
- IMAP_HOST=imap.gmail.com
- IMAP_PORT=993
- IMAP_USER=メールアドレス
- IMAP_PASS=アプリパスワード
- IMAP_SSL=true