[PITCH] Criei um SMTP Server para desenvolvimento
Fala, galera! đź‘‹
Muitas vezes desenvolvo aplicações que necessitam de um envio de email, seja para validar um email no cadastro, ou então para avisar o usuário que houve um acesso a conta dele.
Porém sempre durante o desenvolvimento, preciso criar um projeto no mailtrap, e ficar dependente dos limites de emails de teste.
Pensando em algo para facilitar minha vida, decidi criar um servidor SMTP que rode em localhost e que me mostre os emails que enviei do meu projeto em desenvolvimento. Então criei o devmail-server. Agora posso simular vários cadastros de usuários com emails diferentes e os emails chegarão todos no mesmo lugar, facilitando a visualização.
Se você também tem ou já teve um problema do tipo, testa lá e me conta aqui oque achou.
Feedbacks sĂŁo sempre muito bem-vindos!
Links
Github: https://github.com/gabrielalves262/devmail-server NPM: https://www.npmjs.com/package/devmail-server
Instalação
npm install -g devmail-server
Iniciar
npx devmail-server
Opções
--smtp-host
: Porta do servidor SMTP. (default: '0.0.0.0')--smtp-port
: Host do servidor SMTP. (default: 587)--host
,-h
: Porta do servidor Web. (default: '0.0.0.0')--port
,-p
: Host do servidor Web. (default: 3000)
Exemplo:
npx devmail-server --smtp-host "127.0.0.1" --smtp-port 2525 -p 8080
Exemplo utilizando nodemailer
import { createTransport } from 'nodemailer'
const main = async () => {
const mail = createTransport({
host: 'localhost',
port: 587,
})
await mail.sendMail({
from: { name: 'ACME', address: 'contact@acme.com.br' },
to: {name: "John Doe", address: 'john.doe@example.com'},
subject: 'Novo Login',
html: `<p>Olá! Foi efetuado um novo login na sua conta.</p>`,
attachments: [
{
filename: 'file.txt',
path: './file.txt'
},
{
filename: 'test.zip',
path: './test.zip'
},
]
})
}
main()
.then(() => console.log('done'))
.catch((err) => console.error(err))
Muito legal a sua solução amigo!
Mas acho que vale a pena dar uma olhada no Mailpit. Uma solução de servidor smpt para dev com UI e tudo.
O que eu mais gosto dela Ă© que Ă© tudo local e em Docker!
Meus 2 cents:
Tai uma aplicacao interessante e um tanto fora da caixa.
Aqui na empresa nunca iriamos pensar neste tipo de app, pois temos nossos proprios servidores email (postfix+dovecot) com multiplos dominios para teste.
Mas para um dev solo ou mesmo uma empresa sem tanta infra (colocar um servidor SMTP so para testes e homologacao da uma certa mao de obra) - eh uma ideia bem legal.
Analisando agora, tavez seja interessante montar um docker com toda esta infra pronta (postfix/postfixadmin/dovecot/amavis/mysql/dkim/dnsmasq) para este tipo de situacao.
(esquece, nao faz sentido - tem varias opcoes)
Parabens pela iniciativa - vou forkar !
PS: Depois que escrevi este post, dei uma pesquisada e achei este "smtp para dev" (em .net, mas enfim):
Outros servicos para teste online de email: