我试图用nodejs和nodemailer发送邮件,但这对我不起作用。我有以下代码:
const config = require('../../config');
const http = require('http');
const nodemailer = require('nodemailer');
module.exports = {
sendMail: function (params) {
return new Promise((resolve, reject) => {
var transporter = nodemailer.createTransport({
//service: 'gmail', //I tried with this too
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: params.fromMail,
pass: params.fromPass
}
});
var mailOptions = {
from: params.fromMail,
to: params.toMailList,
subject: params.subject,
html: params.mailHtmlContent,
};
transporter.sendMail(mailOptions, function(err, info){
if (err) {
reject(err);
} else {
resolve(info.response);
}
});
});
}
};
我得到这个错误:
{错误:无效登录:535-5.7.8不接受用户名和密码。了解更多信息,请访问535 5.7.8_actionAUTHCompletep6sm97493129wrx.50-SMTPConnection的gsmtp。SMTPConnection的_formatError(C:\User\Carlos\Desktop\Proyectos\nodeServer\node_modules\nodemailer\lib\smtp-connect\node_modules: 19)。SMTPConnection的https://support.google.com/mail/?p=BadCredentials(C:\User\Carlos\Desktop\Proyectos\nodeServer\index.js:774\nodemailer\lib\smtp-connect\_responseA: 34)。SMTPConnection的index.js:1509node_modules(C:\User\Carlos\Desktop\Proyectos\nodeServer\ctions.push.str\nodemailer\lib\smtp-connect\_processResponse: 26)。SMTPConnection的index.js:547(C:\User\Carlos\Desktop\Proyectos\nodeServer\node_modules\lib\smtp-connect\index.js:933: 20)。_onData(C:\User\Carlos\Desktop\Proyectos\nodeServer\node_modules\nodemailTLSSocket上的readableAddChunk(_stream_readable.js:264: 11)。Readable.push(_stream_readable.js:219: 10)代码:“EAUTH”,响应:“535-5.7.8用户名和密码不被接受。在\n535 5.7.8https://support.google.com/mail/?p=BadCredentialsp6sm97493129wx.50-gsmtp'了解更多信息,响应代码:535,命令:“AUTH PLAIN”}
我已经更改了gmail帐户上关于“不太安全的应用程序”的对应参数。我也尝试了另一个非gmail帐户。我尝试了这个:
service: 'gmail',
连接如下:
host: 'smtp.gmail.com',
port: 465,
secure: true,
我阅读了stackoverflow中的所有“类似问题”,我不知道我是否还需要什么,或者我是否做了什么坏事。(当然,我已经修改了两个帐户中的用户名和密码,它们都可以)。
我在做什么坏事?
公认的答案对我不起作用。这四个步骤做到了:
>
从管理控制台仪表板,转到安全,然后转到基本设置(您可能需要单击底部的更多控件)。
在子窗口中,选择为所有用户启用对不太安全应用的访问单选按钮。
var nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
service: 'gmail',//smtp.gmail.com //in place of service use host...
secure: false,//true
port: 25,//465
auth: {
user: 'example@gmail.com',
pass: 'password'
}, tls: {
rejectUnauthorized: false
}
});
transporter.sendEMail = function (mailRequest) {
return new Promise(function (resolve, reject) {
transporter.sendMail(mailRequest, (error, info) => {
if (error) {
reject(error);
} else {
resolve("The message was sent!");
}
});
});
}
module.exports = transporter;
用法:
//import transporter JS file
const mail = require('../utils/mail');
let htmlContent = `
<h1><strong>Contact Form</strong></h1>
<p>Hi,</p>
<p>${name} contacted with the following Details</p>
<br/>
<p>Email: ${email}</p>
<p>Phone: ${phone}</p>
<p>Company Name: ${companyName}</p>
<p>Message: ${message}</p>
`
let mailOptions = {
from: "Example <example@gmail.com>",
to: "me@gmail.com",
subject: "Mail Test",
text: "",
html: htmlContent
}
mail.sendMail(mailOptions)
.then(function (email) {
res.status(200).json({ success: true, msg: 'Mail sent' });
}).catch(function (exception) {
res.status(200).json({ success: false, msg: exception });
});
注:
>
在使用gmail发送电子邮件之前,您必须允许非安全应用程序访问gmail,您可以通过转到gmail设置来执行此操作https://myaccount.google.com/lesssecureapps?pli=1
同时启用验证码https://accounts.google.com/DisplayUnlockCaptcha
所以我有以下代码: 但当我尝试发送电子邮件时,它总是给出如下错误:错误:无效登录:535-5.7.8用户名和密码不被接受。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsf67-v6sm75536287pfe。75-gsmtp 这是完整跟踪: 知道发生了什么以及如何解决这个问题吗?谢谢你。
当我尝试使用JavaMail API发送邮件时,会出现以下错误:
虽然使用modemailer发送邮件时只有少数帐户,但它工作正常,但对于某些帐户,即使凭据正确,它也会给出“无效登录:535-5.7.8用户名和密码不被接受。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentials3sm51852778pfg。186-gsmtp“
问题内容: Java 文件可以很容易地反编译。如果必须在代码中使用登录数据,如何保护数据库? 问题答案: 将机密帐户和密码硬编码到软件中非常方便-对于熟练的反向工程师。如果所有软件上的密码都相同,那么当不可避免地知道该密码时,每个客户都会受到攻击。而且由于它是硬编码的,因此修复起来非常痛苦。 你应将配置信息(包括密码)存储在应用程序启动时读取的单独文件中。这是防止密码因反编译而泄漏的唯一真实方法(
当我尝试使用我的GMail帐户从我的PHP应用程序中使用SwiftMailer发送电子邮件时,出现以下错误。 这是我的SwiftMailer代码: 这是Apache错误日志和堆栈跟踪中的条目。 [Wed Aug18 22:06:10.284728 2015][: error][pid 9298][客户端10.0.0.1:64806]PHP致命错误:未捕获异常'Swift_TransportExce
问题内容: 尝试使用JavaMail API发送邮件时收到此错误。我确定用户名和密码是100%正确的。我要连接的Gmail帐户是一个较旧的帐户,因为他们说使用新帐户需要一些时间。 这是我的代码: 问题答案: 给定的代码段可以在我的Gmail帐户上正常运行,因此此问题出在其他地方。您是否遵循错误消息中给出的链接?它包含以下提示: 确保您输入了完整的电子邮件地址(例如,username@gmail.c