Forum Discussion
How to send emails thru nodemailer (node.js) from outlook? SMTP Disabled
Hello, I'm writing a small backend node.js application from which I'd like to send emails. I set everything up in the following fashion:
try {
const transporter = nodemailer.createTransport({
host: "smtp.office365.com",
port: 587,
secure: false, // STARTTLS
auth: {
user: "email address removed for privacy reasons",
pass: "secret-password",
},
});
const mailOptions = {
from: senderEmail,
to: recipientEmail,
subject: "Quote from Anonymous",
text: JSON.stringify(storedFormData, null, 2),
};
await transporter.sendMail(mailOptions);
res.json({ message: "Email sent successfully." });
However, no matter how I change the structure of the code I keep getting the following error:
code: 'EAUTH',
response: '535 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled for the Tenant. Visit https://aka.ms/smtp_auth_disabled for more information. [FR2P281CA0043.DEUP281.PROD.OUTLOOK.COM 2023-09-05T20:12:25.431Z 08DBACD4F0020982]',
responseCode: 535,
command: 'AUTH LOGIN'
So I guess my question is, how to enable SMTP for tenant?
6 Replies
- kushagra980Copper Contributor
hello , this did not work for me , i used an alternative which is email communication service ,which is used to connect to domain and then use but keep in mind the email will be mailto:email address removed for privacy reasons,
if you want i can help you with code in nodejs . but this problem still exist to .
- malik786Copper Contributorconst nodemailer = require('nodemailer');
const { ConfidentialClientApplication } = require('@azure/msal-node');
const config = {
auth: {
clientId: 'YOUR_CLIENT_ID',
authority: 'https://login.microsoftonline.com/YOUR_TENANT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
}
};
const cca = new ConfidentialClientApplication(config);
const getAccessToken = async () => {
const result = await cca.acquireTokenByClientCredential({
scopes: ['https://graph.microsoft.com/.default'],
});
return result.accessToken;
};
const sendEmail = async () => {
const accessToken = await getAccessToken();
const transporter = nodemailer.createTransport({
service: 'Outlook365',
auth: {
type: 'OAuth2',
user: 'email address removed for privacy reasons',
accessToken: accessToken,
}
});
const mailOptions = {
from: 'email address removed for privacy reasons',
to: 'email address removed for privacy reasons',
subject: 'Test Email',
text: 'Hello, this is a test email sent using Nodemailer and OAuth2!',
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
console.log('Email sent: ' + info.response);
});
};
sendEmail().catch(console.error);- onezerocomCopper Contributor
malik786 hello!I used your approach but encountered the “OrganizationFromTenantGuidNotFound” error. Are there any prerequisites, such as a license. Looking forward to your reply, thanks!
- onesbenrhaimeCopper ContributorThank you, it worked. I removed the credential access for Azure and it worked.
- kushagra980Copper Contributor
milos95
hello milos , i am too working on this and facing similar issule , kindly let me know if you solved this problem- onesbenrhaimeCopper Contributor
kushagra980 @milos95
hello, i am too working on this and facing similar issule
plz let me know if you solved this problem