[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: '[email protected]' },
to: {name: "John Doe", address: '[email protected]'},
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))