next-authでマジックリンク認証を使うことがあり、ローカルでメールサーバーを実行したくなったので記録を残しておきます。
MailHog
コンテナがあるので利用します。
docker-compose.yml
version: "3"
services:
mail:
image: mailhog/mailhog:latest
ports:
- "8025:8025"
- "1025:1025"
environment:
MH_STORAGE: maildir
MH_MAILDIR_PATH: /tmp
volumes:
- mail_volume:/tmp
volumes:
mail_volume:
.env
# EMAIL_SERVER="smtp://user:pass@mail:1025"
EMAIL_SERVER_USER="user"
EMAIL_SERVER_PASSWORD="pass"
EMAIL_SERVER_HOST="127.0.0.1"
EMAIL_SERVER_PORT="1025"
EMAIL_FROM="noreply@example.com"
next-auth
利用側ではこうします。
export const nextAuthOptions: NextAuthOptions = {
providers: [
EmailProvider({
server: {
host: process.env.EMAIL_SERVER_HOST,
port: process.env.EMAIL_SERVER_PORT,
auth: {
user: process.env.EMAIL_SERVER_USER,
pass: process.env.EMAIL_SERVER_PASSWORD,
},
secure: process.env.NODE_ENV !== "development",
},
from: process.env.EMAIL_FROM,
maxAge: 7 * 24 * 60 * 60, // 7 days
}),
],
}
詳しくは以下を参照
Build software better, together
GitHubiswherepeoplebuildsoftware.Morethan100millionpeopleuseGitHubtodiscover,fork,andcontributetoover420millionprojects.
email providerはシンプルに以下の指定でも動きます。
resend等のsecure接続が要求される場合はEMAIL_SERVER="smtps://resend:password@smtp.resend.com:11
1のようにsmtp”s”にしないとエラーになるので注意!
EmailProvider({
server: process.env.EMAIL_SERVER,
from: process.env.EMAIL_FROM,
メールボックス
http://localhost:8025
にアクセスするとメールボックスが表示されます。
コメント