Looking for some insight into this error I'm getting.
on smtpTransport.sendmail(func(err, info){})
The err variable returns this:
Error: getaddrinfo ENOTFOUND smtp.gmail.com smtp.gmail.com:465
at errnoException (dns.js:50:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
and my code is:
var smtpTransport = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'xxx#gmail.com',
pass: 'xxx'
}
});
var mailOptions = {
to: user.email,
from: 'xxx#gmail.com',
subject: 'Node.js Password Reset',
text: ' '
};
smtpTransport.sendMail(mailOptions, function(err) {
});
}
], function(err) {
});
Try stop using gmail service and set it up like any other smtpTransport like the following.
var smtpTransport = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true, // use SSL
auth: {
user: 'user#gmail.com',
pass: 'pass'
}
});
If This does not work, your server might not be able to lookup smtp.gmail.com due to a firewall or something, to check type the following.
nslookup smtp.gmail.com
I also faced the same error with aws ses service. In my case it was wrong configuration credentials.
AWS_SES_REGION="us-east-2"
AWS_SES_ACCESS_KEY_ID=""
AWS_SES_SECRET_ACCESS_KEY=""
I updated the AWS_SES_REGION then it worked for me
Related
How can i send mail from node js with the use of my domail mail like as : noreply#example.com
The connection setting was below using nodemailer
const transporter = nodemailer.createTransport({
host: 'https://example.com',
port: 465, // Port
secure: true, // this is true as port is 465
auth: {
user: 'noreply#example.com',
pass: 'mypassword'
}
});
If i send mail there is an error like below
Error: getaddrinfo ENOTFOUND https://example.com
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26) {
errno: -3008,
code: 'EDNS',
syscall: 'getaddrinfo',
hostname: 'https://lvkart.com',
command: 'CONN'
}
I had this issue when I accedentally added a trailing space to the hostname. The problem seems to be the failing DNS lookup.
In your example: The https:// part is not part of the hostname. In fact, you use SMTP protocol, not https.
try
const transporter = nodemailer.createTransport({
host: 'example.com', // Whatever your true hostname is. Could also be smtp.example.com or similar.
port: 465, // Port
secure: true, // this is true as port is 465
auth: {
user: 'noreply#example.com',
pass: 'mypassword'
}
});
I think the problem might come from your SMTP.
check your configuration correct or wrong by using (outlook or google mail).
I want to send email via Gmail or other email provider like office 365 using Nodemailer as my module Node.js.
I wanna ask also if there's a proxy or firewall setting to disable so that I can send email using gmail or office 365.
Or maybe there is something wrong with my code ?
const nodemailer = require("nodemailer");
const smtpTransport = require('nodemailer-smtp-transport');
function sendEmail(to, subject, html){
nodemailer.createTestAccount((err, account) => {
let transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: 'philip#gmail.com',
pass: 'sercretpass'
}
});
let mailOptions = {
from: '"Admin" ',
to: to,
subject: subject,
html: html
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('Error', error);
}
else{
console.log('Success', info);
}
});
});
}
module.exports.sendEmail = sendEmail;
MY ERROR :
Error { Error: connect ETIMEDOUT 74.125.203.108:465
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1121:14)
errno: 'ETIMEDOUT',
code: 'ECONNECTION',
syscall: 'connect',
address: '74.125.203.108',
port: 465,
command: 'CONN' }
Are you able to telnet to smtp.gmail.com from the machine on port 465 ?
Also try with Port 587, with 587, you should see some other error as it works on STARTTLS.
TESTED WORKING ON GMAIL 2022 March
STEP 1- Enable the "Less Secure App Access" from Security Page of the Google Account
. Google says It's no longer supported but turn On
the feature anyway.
STEP 2-Turn Off the google CAPTCHA.
STTEP 3- Configuring Port And HOST
**Do not use google as the host.Refer the following.
host: "smtp.gmail.com"
if port 587 is not working, try port 465. Make sure to make secure:true for port 465
let transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,
secure: true,
auth: {
user: 'youremail#gmail.com',
pass: 'password',
},
// enable below only if u are running on local host
tls: { rejectUnauthorized: true }
});
I always used nodemailer for sending emails, suddenly I started having the above error. So I thought what was new on the computer and found that the antivirus was causing the problem. So disabling the antivirus and windows firewall is a good start to solve the problem.
I'm trying to use nodemailer send the email. Below is the sample code.
const nodemailer = require('nodemailer');
let transporter = nodemailer.createTransport({
host: '10.88.88.88',
port: 25,
secureConnection: false,
auth: {
user: 'user',
pass: 'pwd',
}
});
let mailOptions = {
from: 'sender#test.com', // sender address
to: 'receiver#test.com', // list of receivers
subject: 'Hello', // Subject line
html: '<b>Hello world?</b>' // html body
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Message sent: %s', info.messageId);
});
However I got the error below. It seems I could not access the server. The server is using smtp relay of IIS. What is the exact user/pass in auth here? The server window user account who has the right to access the smtp service? If I change user/pass to mailaddress/password, I got the same error info. If I remove auth, I still got the same error info. Or it is proxy issue?
{ Error: connect EACCES 10.88.88.88:25
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1113:14)
errno: 'EACCES',
code: 'ECONNECTION',
syscall: 'connect',
address: '10.88.88.88,
port: 25,
command: 'CONN' }
The servers infra is like below:
node server <--> SMTP Relay IIS (10.88.88.88) <--> Mailserver
Please check using port 587 instead of 25.
My issue is with properly configuring Nodemailer with an Exchange 2010 email server on a Node.js application.
Because I'm not getting an authentication issue, which I do when using well-known services like Outlook365, I'm assuming the problem is with the host and/or security and port settings - I don't think I connect in the first place.
My config below -
let transporter = nodemailer.createTransport({
host: 'https://email.<COMPANYNAME>.com/owa',
port: '587',
secure: false,
auth: {
user: <USERNAME>,
pass: <PASSWORD>
},
tls: {
rejectUnauthorized: false
}
});
It errors here on my Node app -
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('Send error: ', error);
res.sendStatus(500);
} else {
console.log('Email sent!');
res.sendStatus(200);
}
});
Here is the error from AWS EC2 logs -
getaddrinfo ENOTFOUND https://email.<COMPANYNAME>.com/owa https://email.<COMPANYNAME>.com/owa:587
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)
code: 'ECONNECTION',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'https://email.<COMPANYNAME>.com/owa',
host: 'https://email.<COMPANYNAME>.com/owa',
port: '587',
command: 'CONN'
Nodemailer docs specify that the host "is the hostname or IP address to connect to (defaults to ‘localhost’)"
When I try more the conventional mail.COMPANYNAME.com my requests time out. Using the address clearly hits my server and returns errors in the verification/ sending steps that I've specified.
Again, the issue seems to be with my transporter configuration with Exchange 2010. Any help is greatly appreciated!
I was searching for this question too. But I found the solution myself.
const transporter = nodemailer.createTransport({
host: 'smtp.office365.com',
port: 587,
secure: false,
auth: {
user: 'USER_NAME',
pass: 'PASSWORD'
}
});
I used this configuration for sending email using node mailer from exchange or Office 365 server.
I used this setup to send a mail:
import NodeMailer from 'nodemailer'
import SmtpTransport from 'nodemailer-smtp-transport'
const transporter = NodeMailer.createTransport(SmtpTransport({
host: 'smtp.1blu.de',
port: 25,
debug: true,
auth: {
user: '...',
pass: '...'
}
}))
transporter.sendMail(options, (error, data) => ...)
But I get this error:
Error: connect ECONNREFUSED 127.0.0.1:25
at Object.exports._errnoException (util.js:749:11)
at exports._exceptionWithHostPort (util.js:772:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1009:14)
Seems like it ignores the host, but why?
I had the very same problem as you and I am using 1blu as well.
The issue is related to the TLS library of Node. The following configuration did the job for me.
Here:
var smtpTransport = nodemailer.createTransport("SMTP",{
host: 'smtp.1blu.de',
secureConnection: true,
port: 465,
auth: {
user: '...',
pass: '...'
},
tls:{
secureProtocol: "TLSv1_method"
}
});
console.log('SMTP Configured');