Skip to content

Instantly share code, notes, and snippets.

@ricardoreis
Created December 3, 2024 14:53
Show Gist options
  • Save ricardoreis/6bbfd53e6ec985d32dd63256d5ba2588 to your computer and use it in GitHub Desktop.
Save ricardoreis/6bbfd53e6ec985d32dd63256d5ba2588 to your computer and use it in GitHub Desktop.
require('dotenv').config();
const nodemailer = require('nodemailer');
// Para produção, use variáveis de ambiente
const EMAIL_USER = process.env.EMAIL_USER || '[email protected]';
const EMAIL_PASS = process.env.EMAIL_PASS || 'Senha';
// Configuração do transporter
const transporter = nodemailer.createTransport({
host: 'br960.hostgator.com.br',
port: 465,
secure: true,
auth: {
user: EMAIL_USER,
pass: EMAIL_PASS
},
debug: true,
logger: true,
tls: {
rejectUnauthorized: false
}
});
// Configuração do email com headers DKIM e SPF
const mailOptions = {
from: {
name: 'Produtivi',
address: EMAIL_USER
},
to: '[email protected]',
subject: 'Teste de Envio - Produtivi',
text: 'Este é um email de teste para verificar a configuração do servidor SMTP.',
html: `
<h1>Teste de Envio de Email</h1>
<p>Este é um email de teste para verificar a configuração do servidor SMTP.</p>
<p>Se você está recebendo este email, a configuração está funcionando corretamente!</p>
`,
headers: {
'X-Priority': '3',
'X-MSMail-Priority': 'Normal',
'X-Mailer': 'Produtivi-Mailer',
'Message-ID': '<' + Date.now() + '@produtivi.com.br>'
}
};
async function sendMail() {
try {
// Verificar a conexão antes de enviar
console.log('Verificando conexão com o servidor...');
const verifyResult = await transporter.verify();
console.log('Conexão verificada:', verifyResult);
console.log('Tentando enviar email...');
const info = await transporter.sendMail(mailOptions);
console.log('Email enviado com sucesso!');
console.log('ID da mensagem:', info.messageId);
console.log('Response:', info.response);
console.log('Envelope:', info.envelope);
// Log adicional para debugging
if (info.accepted) console.log('Aceito por:', info.accepted);
if (info.rejected) console.log('Rejeitado por:', info.rejected);
} catch (error) {
console.error('Erro ao enviar email:');
console.error('Nome do erro:', error.name);
console.error('Mensagem:', error.message);
if (error.response) {
console.error('Resposta do servidor:', error.response);
}
// Log do stack trace para debugging
console.error('Stack:', error.stack);
}
}
// Executar o envio
sendMail();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment