Recentemente fiz algo semelhante com as mesmas tecnologias, mas não consigo te apontar um erro específico, ajudaria muito se você mostrasse um pedaço do código ou então respondesse algumas dúvidas.
- Foi analisado os logs da vercel? Esta dando algum erro?
- Foi analisado os logs do resend? Esta dando algum erro?
- (como @Ytu sabiamente apontou) O domínio de produção está verificado? (lembrando que o domínio delivered@resend.dev é só para testes)
- O token de acesso do resend esta com permissão para o domínio em questão e para a função de envio?
- O NextAuth tem a própria abstração de envio de email de validação, se você estiver fazendo através dele, pode ter faltado um configuração de url de envio para a produção (tem um exemplo nas docs do Resend)
- [Improvável] Se estiver disparando o email atráves de um api route do Next usando Server Components, lembre de que a rota deve ser informada por completo, incluindo o host (Ex: https://myapp.vercel.app/email/verification)
- [Improvável] O email pode estar caindo em spam ou na pasta de promoções (aconteceu comigo :c)
Sinto muito por não poder elucidar melhor, mas quem sabe esse troubleshooting ajude em alguma coisa.
Cara suas perguntas me fizeram chegar no problema mas de qualquer forma vou responder todas até pra chegarmos numa solução mais específica:
"Foi analisado os logs do resend? Esta dando algum erro?" R: Analisei o log do resend e não tem nada, nenhum erro lá, é como se ele nem tivesse chegado a ser enviado pra lá.
"(como @Ytu sabiamente apontou) O domínio de produção está verificado? (lembrando que o domínio delivered@resend.dev é só para testes)" R: O domínio está configurado corretamente e eu alterei esse cara aí pro domínio correto.
"O token de acesso do resend esta com permissão para o domínio em questão e para a função de envio?" R: Sim, tudo configurado conforme a documentação do resend e o domínio também está configurado corretamente para comunicar com o resend.
"O NextAuth tem a própria abstração de envio de email de validação, se você estiver fazendo através dele, pode ter faltado um configuração de url de envio para a produção (tem um exemplo nas docs do Resend)" R: Estou fazendo por fora, no momento de armazenar os dados do usuário no banco eu também gero o token que será enviado por email e faço a requisição da rota "/api/send".
"[Improvável] Se estiver disparando o email atráves de um api route do Next usando Server Components, lembre de que a rota deve ser informada por completo, incluindo o host (Ex: https://myapp.vercel.app/email/verification)" R: Estou passando a rota completa, pego a env NEXT_PUBLIC_URL juntamente com a /api/send no momento do fetch.
"[Improvável] O email pode estar caindo em spam ou na pasta de promoções (aconteceu comigo :c)" R: Ele nem está sendo disparado.
"Foi analisado os logs da vercel? Esta dando algum erro?" R: Analisando esse carinha aqui, eu recebi o seguinte erro [POST] /api/send reason=EDGE_FUNCTION_INVOCATION_FAILED, status=500, user_error=true