O Better Auth chama uma função sua toda vez que precisa mandar e-mail. A integração é essa função — não há adaptador, plugin nem configuração intermediária.
É o que a gente faz com a gente. O painel do Kourio autentica com Better Auth, e os e-mails de redefinição e verificação dele saem pelo nosso próprio transporte. Este guia é o nosso código de produção, com os nomes trocados.

Instalar

.env
A chave permite enviar em nome de todos os seus domínios verificados. Ela vive no servidor, nunca em código que chega ao navegador.

O mínimo que funciona

auth.ts

Um remetente só, em um lugar só

Depois do terceiro gancho, o mesmo bloco começa a ser copiado com uma vírgula diferente. Vale extrair antes disso:
mailer.ts
Link mágico é senha. Diga o prazo na mensagem e mantenha-o curto. Um link de acesso que vale uma semana é uma senha permanente esquecida numa caixa de entrada.

Código de uma vez (OTP)

Ponha o código no assunto. Quem está esperando um código o lê na notificação, sem abrir a mensagem — e essa é a diferença entre alguns segundos e mais um passo no meio de um login.

Convite para organização

Com template do Kourio

Se você quer a marca no e-mail sem escrever HTML de 2007, publique um template no painel e mande só as variáveis. O assunto e o remetente vêm dele:
Cada bloco de template é um contrato: dado esse conteúdo, o Kourio garante que sai certo no Outlook, no modo escuro e nos 600px de largura. Você escreve o texto; a marcação é problema nosso.

Três coisas que só aparecem em produção

Mensagem só em HTML pontua pior em filtro de spam, e a redefinição de senha é justamente a que não pode cair na caixa errada. O campo text custa uma linha.
Se sendResetPassword lançar, o Better Auth propaga o erro para quem pediu — e a diferença entre “enviado” e “erro” conta a um atacante quais endereços existem na sua base. Registre a falha e responda igual nos dois casos.
Deixe esses envios como TRANSACTIONAL, que é o padrão. A classe decide por qual reputação a mensagem sai, e as duas são medidas em separado justamente para que uma campanha ruim não impeça alguém de entrar na própria conta.

Quando não chega

1

Confira se o domínio está verificado

Nenhuma mensagem sai de um domínio sem SPF, DKIM e DMARC publicados. Veja Domínios.
2

Procure a mensagem pelo endereço

GET /v1/emails?search=… traz a linha do tempo: aceita, entregue, adiada, devolvida. É o que responde “chegou?” sem depender do seu log.
3

Veja se o endereço está suprimido

Um endereço que devolveu permanentemente para de receber — inclusive transacional. Veja Supressões.

Enviar

As duas formas de montar uma mensagem, o que conta na cota, e por que marketing sai por outro caminho.