設定
1
ConfigMap
30-config.yaml (additions)
OVERLEAF_EMAIL_FROM_ADDRESS を設定するとメール送信が有効になります。必ず SMTP サーバー(または SES)と一緒に設定してください。送信元アドレスだけを設定すると、Ayakaleaf Pro は Pod 内の SMTP サーバーに接続しようとし、すべてのメールが失敗します。設定しない場合、メールは送信されず、web.log に書き込まれるだけです。OVERLEAF_EMAIL_SMTP_SECURE、OVERLEAF_EMAIL_SMTP_IGNORE_TLS、OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH は JSON として読み込まれるため、"true" または "false" を使用してください。yes のような値を設定すると、起動時に Pod のすべてのサービスが停止します。2
Secret
OVERLEAF_EMAIL_AWS_SES_ACCESS_KEY_ID と OVERLEAF_EMAIL_AWS_SES_SECRET_KEY をここに設定し、OVERLEAF_EMAIL_DRIVER: ses と OVERLEAF_EMAIL_AWS_SES_REGION を ConfigMap に設定します。3
適用、再起動、テスト
複数のレプリカ
追加の作業は不要です。すべてのレプリカが同じ設定で送信し、送信レート制限はすべてのレプリカをまたいで Redis でカウントされます。SMTP サーバーが既知の送信元しか受け付けない場合は、Pod がクラスター外に出る際のアドレス(通常はノードのアドレス)を許可してください。Kubernetes でのテスト結果
Mailpit を SMTP サーバーとして使用し、Kubernetes 1.37 上でレプリカ 1 つの構成で、メールを送信するエンドツーエンドテストに合格しました。対象は、管理者が作成したアカウントのアクティベーションメール、ドメインを限定したセルフ登録のアクティベーションメール、パスワードリセットのメール、アカウントが削除されたことをユーザーに伝えるメール、そして SMTP サーバーがアクティベーションメールや削除通知メールを拒否した場合の動作です(アカウントはそれでも作成・削除され、アクティベーションメールは後で再送できます)。OVERLEAF_EMAIL_FROM_ADDRESS を設定して SMTP ホストを設定しなかった場合、上記のとおり、パスワードリセットのリクエストはエラーで失敗し、web.log には “error sending message” と表示されました。
