fix(eposta): Reply-To + prod'da sessiz fallback yok
- Resend gönderimine replyTo eklendi (EMAIL_REPLY_TO, yoksa destek@kolaytercih.com) — mail.kolaytercih.com'un MX'i olmadığı için yanıtlar bounce oluyordu. - epostaKonsolModu(): konsola yazma yalnızca anahtar yokken VE (dev'de ya da EPOSTA_KONSOL_FALLBACK=1 ile) geçerli. Production'da anahtar yoksa artık "gönderildi" dönmüyor, token'lı link loga yazılmıyor; gönderim anında net hata fırlatılıyor (better-auth 500 → formda hata toast'ı). - Production'da EMAIL_FROM yoksa sessizce onboarding@resend.dev'e düşmek yerine hata. Env okumaları çağrı anında — next build etkilenmez. Canlı giriş yolunu değiştirir; merge öncesi lokal docker testi şart. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@ import { magicLink } from "better-auth/plugins";
|
||||
import { appDb, schema } from "./appdb";
|
||||
import { grantCredits, DENEME_KREDISI } from "./credits";
|
||||
import { magicLinkEpostasi } from "./eposta";
|
||||
import { epostaGonder } from "./eposta-gonder";
|
||||
import { epostaGonder, epostaKonsolModu } from "./eposta-gonder";
|
||||
|
||||
/**
|
||||
* Verify URL'ini maile konacak onay sayfası URL'ine çevirir. Doğrulama linki
|
||||
@@ -30,13 +30,15 @@ async function sendMagicLinkEmail(email: string, url: string) {
|
||||
(globalThis as { __sonMagicLink?: string }).__sonMagicLink = url;
|
||||
}
|
||||
const mailLinki = onaySayfasiUrl(url);
|
||||
if (!process.env.RESEND_API_KEY) {
|
||||
// Dev fallback: Resend anahtarı yoksa linki terminale yaz
|
||||
if (epostaKonsolModu()) {
|
||||
// Konsol modu (dev ya da EPOSTA_KONSOL_FALLBACK=1): linki terminale yaz.
|
||||
// Prod'da anahtar yoksa buraya girilmez; epostaGonder hata fırlatır —
|
||||
// token'lı link prod loglarına düşmez.
|
||||
console.log(`\n[giris] Magic link for ${email}:\n${mailLinki}\n`);
|
||||
return;
|
||||
}
|
||||
// Gönderim hatası better-auth'a fırlatılır — aksi halde kullanıcı
|
||||
// "gönderildi" ekranını görür ama mail hiç çıkmaz.
|
||||
// Gönderim/yapılandırma hatası better-auth'a fırlatılır — aksi halde
|
||||
// kullanıcı "gönderildi" ekranını görür ama mail hiç çıkmaz.
|
||||
await epostaGonder(email, magicLinkEpostasi(mailLinki));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user