メールは、KolleKがブラウザセッションの外にいる人に届く手段です。招待、マジックリンク、パスワードリセット、メール確認、セキュリティ通知は、すべてメールで届きます。配信を設定するまで、これらはどこにも届きません。
新規インスタンスはMAIL_MAILER=logの状態で出荷されます。すべてのメールは、送信される代わりにアプリケーションログファイルに書き込まれます。これは意図的な仕様です。設定が半端なインスタンスが、誤ったアドレスから気づかないうちにメールを送ってしまうことを防ぎ、テスト中には何が送信されるはずだったかを正確に確認できます。
MAIL_MAILER=log
新しいインスタンスで「招待メールが届かない」と言われた場合、ほとんどの原因はこのデフォルト設定です。メール自体はログファイルの中に存在します。メール配信のトラブルシューティングを参照してください。
実際にメールを送信する方法は2つサポートされています。任意のSMTPサーバーか、Resendサービスです。
.envで次のように設定します。
.env
MAIL_MAILER=smtp MAIL_HOST=smtp.yourprovider.com MAIL_PORT=587 MAIL_USERNAME=your-username MAIL_PASSWORD=your-password
SMTP認証情報を持つトランザクションメールプロバイダーや、自分で運用しているメールサーバーであれば、どれでも使えます。
ユーザーに表示されるアドレスと名前を設定します。
MAIL_FROM_ADDRESS=kollek@yourdomain.com MAIL_FROM_NAME="KolleK"
自分で管理していて、送信用に設定済み(プロバイダー側でSPFとDKIMを設定済み)のドメインを使ってください。そうしないと、メールが迷惑メールとして扱われます。
コンテナを再作成し、たとえばサインインページからマジックリンクをリクエストするなどして、実際にメールを送信させてみます。
docker compose up -d
Resendを使う場合は、次のように設定します。
USE_RESEND=true RESEND_API_KEY=re_your_api_key
これにより、メールはSMTPではなくResendのAPIを通じて送信され、送信のたびにResendのメッセージIDも一緒に記録されます。
KolleKは、送信したすべてのメールをユーザーごとに、件名、本文、配信ステータスとともに記録します。テスト送信の後は、次の2箇所を確認してください。
よくある失敗の兆候:
log
メールはバックグラウンドのキューによって送信されるため、queueコンテナが稼働していなければ、インスタンスから何も送信されません。
このページの内容