我试图通过nodemailer发送电子邮件,而无需SMTP传输.所以我做到了:
var mail = require("nodemailer").mail;
mail({
from: "Fred Foo ? <foo@blurdybloop.com>", // sender address
to: "******@gmail.com", // list of receivers
subject: "Hello ?", // Subject line
text: "Hello world ?", // plaintext body
html: "<b>Hello world ?</b>" // html body
});
Run Code Online (Sandbox Code Playgroud)
但是当我跑步时,我得到了:
> node sendmail.js
Queued message #1 from foo@blurdybloop.com, to vinz243@gmail.com
Retrieved message #1 from the queue, reolving gmail.com
gmail.com resolved to gmail-smtp-in.l.google.com for #1
Connecting to gmail-smtp-in.l.google.com:25 for message #1
Failed processing message #1
Message #1 requeued for …
Run Code Online (Sandbox Code Playgroud) 几天前,我意识到Google已经改变了Gmail帐户的安全性,特别是因为可以从应用程序发送电子邮件.谷歌搜索了一段时间后,我无法找到它的修复程序.所以,我使用了Mailgun.我创建了一个帐户并启用了商家验证功能.但是,我仍然无法发送电子邮件.我一直收到有关未找到请求的网址的错误消息.我怀疑,由于我还没有设置域,它没有选择默认提供的mailgun域.有人可以告诉我如何使用来自NodeMailer的Mailgun测试发送电子邮件,指示mailgun提供的沙箱名称.
在此先感谢何塞
我正在尝试发送电子邮件gmail smtp,但我收到错误:
我的电子邮件和密码是正确的我正在使用nodemailer发送邮件;
var nodemailer = require('nodemailer');
// create reusable transporter object using SMTP transport
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
admin: 'myuseremail.com',
pass: 'password'
}
});
var mailOptions = {
from: 'sender address', // sender address
to: to, // list of receivers
subject: 'Password Reset', // Subject line
html: 'Your one time password is : <b>' + temporaryPassword + ' </b>' // html body
};
transporter.sendMail(mailOptions, function (error, info) {
console.log(error,info);
}
Run Code Online (Sandbox Code Playgroud)
在日志中我收到错误:
{
[Error: Invalid login] …
Run Code Online (Sandbox Code Playgroud) 免责声明:我对技术电子邮件方面不太满意.
所以我建立了一个免费的zoho邮件帐户,它基本上只是我域名的邮件服务器.这种工作通过mx记录转发或其他东西,我不完全确定它是如何工作的.
无论如何,关键是:我可以在每个Outlook使用我的帐户时轻松更改来自字段.所以我的电子邮件地址foo@bar.com
与Foo from bar.com
大多数邮件客户端一样.
现在我想发送一些电子邮件自动从我的donotreply@bar.com
账户nodemailer(v1.10.0)通过SMTP使用SSL.我尝试过在文档/互联网上找到的不同方法.他们所有人都抛出了一个暧昧的堆栈痕迹(见下文).
一旦我停止尝试更改from字段,一切正常(除了字段中的错误).因为我不知道什么事情,我要求帮助解决这个问题.
我已经尝试将第二个参数更改createTransport()
为我想要的字段.不工作.
nodemailer.createTransport(auth.mail, {from: auth.mail.auth.user});
Run Code Online (Sandbox Code Playgroud)
至
nodemailer.createTransport(auth.mail, {from: 'Foo from bar.com'});
Run Code Online (Sandbox Code Playgroud)
我试过设置auth.mail.from
哪个也行不通.我已尝试将auth.mail.from
第二个参数传递给createTransport()
.
我的代码
var nodemailer = require('nodemailer');
var auth = { mail: { host: 'smtp.zoho.com', port: 465, secure: true, auth: { user: 'donotreply@bar.com', pass: 'strongpassword' } };
var log = require('./log');
var transporter = nodemailer.createTransport(auth.mail, {from: auth.mail.auth.user});
function sendText(settings,cb) {
transporter.sendMail(settings, function (err, info) {
if …
Run Code Online (Sandbox Code Playgroud) 我想找到一种方法,nodemailer
通过某种谷歌身份验证或任何其他方式从我的应用程序向用户发送电子邮件。在 Google 禁用不太安全的应用程序选项后,下面提到的工作代码已停止工作。
const nodemailer = require('nodemailer')
const sendEmail = async options => {
const transporter = nodemailer.createTransport({
// host: "smtp.gmail.com",
// port: "465",
// secure: true,
service:'gmail',
auth: {
user: "USER_EMAIL",
pass: "USER_PASSWORD"
},
tls:{rejectUnauthorized:false}
})
const message = {
from: `${process.env.FROM_NAME} <${process.env.FROM_EMAIL}>`,
to: options.email,
subject: options.subject,
text: options.message,
html: options.message,
attachments: [
{
filename: '.png',
path: __dirname + '.png',
cid: '.png'
}
]
}
const info = await transporter.sendMail(message)
console.log('Message sent : %s', info.messageId)
console.log(__dirname)
} …
Run Code Online (Sandbox Code Playgroud) 我已经建立了一个邮件程序功能,并试图加强覆盖范围.试图测试它的一部分已被证明是棘手的,特别是这个mailer.smtpTransport.sendMail
var nodemailer = require('nodemailer')
var mailer = {}
mailer.smtpTransport = nodemailer.createTransport('SMTP', {
'service': 'Gmail',
'auth': {
'XOAuth2': {
'user': 'test@test.com',
'clientId': 'googleClientID',
'clientSecret': 'superSekrit',
'refreshToken': '1/refreshYoSelf'
}
}
})
var mailOptions = {
from: 'Some Admin <test@tester.com>',
}
mailer.verify = function(email, hash) {
var emailhtml = 'Welcome to TestCo. <a href="'+hash+'">Click this '+hash+'</a>'
var emailtxt = 'Welcome to TestCo. This is your hash: '+hash
mailOptions.to = email
mailOptions.subject = 'Welcome to TestCo!'
mailOptions.html = emailhtml
mailOptions.text = emailtxt
mailer.smtpTransport.sendMail(mailOptions, …
Run Code Online (Sandbox Code Playgroud) 这是我的settingController:
var sendSmtpMail = function (req,res) {
var transport = nodemailer.createTransport({
service:'gmail',
auth: {
user: "asdfqweerrccb@limitlesscircle.com",
pass: "qwerr@wee"
}
});
var mailOptions = {
from: "transactions@limitlesscircle.com",
to:'umaraja1124@gmail.com',
subject: req.body.subject+"nodejs working ?",
text: "Hello world ?",
}
transport.sendMail(mailOptions, function(error, response){
if(error){
res.send("Email could not sent due to error: "+error);
console.log('Error');
}else{
res.send("Email has been sent successfully");
console.log('mail sent');
}
});
Run Code Online (Sandbox Code Playgroud)
在邮差我得到了这样的错误:
由于错误,无法发送电子邮件:
Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials g7sm64435626pfj.29 - gsmtp
Run Code Online (Sandbox Code Playgroud) 我正在使用 Nodemailer 在我的无服务器 Next.js 项目中发送电子邮件,该项目部署在 Vercel 中,该项目在开发模式下完美运行。但我在生产中遇到了问题。没有返回错误,一切都与开发模式相同,只是我没有收到任何电子邮件。
我有另一个用 React 构建的项目,并部署在 Heroku 中,我以相同的方式发送电子邮件,并且它在开发和生产方面工作正常,所以我知道问题出在 Vercel 上。
是的,我在 Google 帐户中启用了“允许安全程度较低的应用程序”,并且是的,我启用了验证码。
我也读过这篇文章https://vercel.com/docs/solutions/email但它并没有真正让我明白在我的情况下我应该做什么。我可以看到这是 SMTP 的问题,但我不知道到底是什么。
有人遇到过这种问题吗?我怎样才能解决这个问题?
const transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,
auth: {
user: myEmail@gmail.com,
pass: myEmailPass
}
});
const mailOptions = {
from: `${req.body.name} ${req.body.email}`,
to: myEmail@gmail.com,
subject: `${req.body.subject}`,
text: `Text: ${req.body.text}`
}
transporter.sendMail(mailOptions, (err, res) => {
if(err) {
console.log(err);
} else {
console.log("success");
}
});
Run Code Online (Sandbox Code Playgroud)
更新
我更改为 SendGrid:创建了一个帐户,创建了一个 API 密钥,并像这样更改了代码(而不是上面的代码):
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to: `myEmail@gmail.com`, …
Run Code Online (Sandbox Code Playgroud) 我正在创建这样的传输对象.
var transport = nodemailer.createTransport("SMTP", {
host: "smtp-mail.outlook.com", // hostname
secureConnection: false, // use SSL
port: 587, // port for secure SMTP
auth: {
user: "user@outlook.com",
pass: "password"
}
});
Run Code Online (Sandbox Code Playgroud)
当我尝试发送邮件时,这是我得到的错误.
[错误:139668100495168:错误:1408F10B:SSL例程:SSL3_GET_RECORD:错误的版本号:../ deps/openssl/openssl/ssl/s3_pkt.c:337:]
当我尝试将ignoreTLS设置为true时.这就是我得到的
{[AuthError:无效登录 - 530 5.7.0必须先发出STARTTLS命令]名称:'AuthError',数据:'530 5.7.0必须先发出STARTTLS命令'}
难道我做错了什么?请帮忙.
我有代码在nodejs中发送带有nodemailer的电子邮件,但我想将文件附加到电子邮件但是我找不到办法在网上搜索但是我找不到有用的东西.我有什么方法可以附加文件到那个或任何可以帮助我用nodemailer附加文件的资源?
var nodemailer = require('nodemailer');
var events = require('events');
var check =1;
var events = new events.EventEmitter();
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "gmail",
auth: {
user: "example@gmail.com",
pass: "pass"
}
});
function inputmail(){
///////Email
const from = 'example<example@gmail.com>';
const to = 'example@yahoo.com';
const subject = 'example';
const text = 'example email';
const html = '<b>example email</b>';
var mailOption = {
from: from,
to: to,
subject: subject,
text: text,
html: html
}
return mailOption;
}
function send(){ …
Run Code Online (Sandbox Code Playgroud)