我最近开始编程我的第一个node.js. 但是,我发现我无法创建直接发送到我的电子邮件的联系人表单,因为我找不到任何能够发送电子邮件的节点的模块.
有谁知道node.js电子邮件库或示例联系表单脚本?
我尝试使用nodemailer使用NodeJS实现联系表单,但它只适用于本地,它不能在远程服务器上运行...
我的错误信息:
[website.fr-11 (out) 2013-11-09T15:40:26] { [AuthError: Invalid login - 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvlX
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 V-dFQLgb7aRCYApxlOBuha5ESrQEbRXK0iVtOgBoYeARpm3cLZuUS_86kK7yPis7in3dGC
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 N1sqhr3D2IYxHAN3m7QLJGukwPSZVGyhz4nHUXv_ldo9QfqRydPhSvFp9lnev3YQryM5TX
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 XL1LZuJL7zCT5dywMVQyWqqg9_TCwbLonJnpezfBLvZwUyersknTP7L-VAAL6rhddMmp_r
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 A_5pRpA> Please log in via your web browser and then try again.
[website.fr-11 (out) 2013-11-09T15:40:26] 534-5.7.14 Learn more at https://support.google.com/mail/bin/answer.py?answer=787
[website.fr-11 (out) 2013-11-09T15:40:26] 534 5.7.14 54 fr4sm15630311wib.0 - gsmtp]
[website.fr-11 (out) 2013-11-09T15:40:26] name: 'AuthError',
[website.fr-11 (out) 2013-11-09T15:40:26] data: '534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvlX\r\n534-5.7.14 V-dFQLgb7aRCYApxlOBuha5ESrQEbRXK0iVtOgBoYeARpm3cLZuUS_86kK7yPis7in3dGC\r\n534-5.7.14 N1sqhr3D2IYxHAN3m7QLJGukwPSZVGyhz4nHUXv_ldo9QfqRydPhSvFp9lnev3YQryM5TX\r\n534-5.7.14 XL1LZuJL7zCT5dywMVQyWqqg9_TCwbLonJnpezfBLvZwUyersknTP7L-VAAL6rhddMmp_r\r\n534-5.7.14 A_5pRpA> Please log in via your …Run Code Online (Sandbox Code Playgroud) 我已经在本地(http://localhost:8080)设置了一个基本的NodeJS服务器(使用nodemailer模块),这样我就可以测试服务器是否可以实际发送电子邮件了.
如果我理解正确的SMTP选项(请纠正我,如果我错了),我可以尝试从我的服务器发送电子邮件给某人的电子邮件帐户直接,或者我可以发送电子邮件,仍然使用Node.js的,但通过实际的电子邮件帐户(在这种情况下是我的个人Gmail帐户),即使用SMTP.此选项要求我通过NodeJS远程登录该帐户.
因此,在下面的服务器中,我实际上是尝试使用NodeJ从我的个人电子邮件帐户向我的个人电子邮件帐户发送电子邮件.
这是我的简单服务器:
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport("SMTP", {
service: 'Gmail',
auth: {
user: '*my personal Gmail address*',
pass: '*my personal Gmail password*'
}
});
var http = require('http');
var httpServer = http.createServer(function (request, response)
{
transporter.sendMail({
from: '*my personal Gmail address*',
to: '*my personal Gmail address*',
subject: 'hello world!',
text: 'hello world!'
});
}).listen(8080);
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.我收到了谷歌的一封电子邮件说:
Google帐户:登录尝试已被阻止如果是您的话您可以切换到Google制作的应用程序(如Gmail)来访问您的帐户(推荐)或更改您的设置,网址为https://www.google.com/settings/security/ lesssecureapps,以便您的帐户不再受现代安全标准的保护.
我在nodemailer GitHub页面上找不到上述问题的解决方案.有没有人有解决方案/建议?
谢谢!:-)
我搜索了很多,但所有都是最好的alpha版本,所以我似乎必须尝试一个代码.我不想从头开始编写代码,而是希望以现有的实现为基础,但这是一个很好的实现.
有什么建议?
我试图通过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) 我有JS,Jquery和NoSQL DB的应用程序。我没有诸如Node或C#之类的任何后端技术。我的Web UI与数据库直接交互。
现在,在将数据提交到数据库之后,我想向用户发送电子邮件通知。我在互联网上进行搜索,有一些文章说我们在处理SMTP服务器时无法发送带有客户端代码的电子邮件。
休假来自smtpjs.com
<script src="js/smtp.js"></script>
<script>
Email.send("vkxyz@abc.com",
"vk@nyu.edu",
"This is a subject",
"this is the body",
"smtp.qwe.io",
"vkxyz@abc.com",
"abcq4#");
</script>
Run Code Online (Sandbox Code Playgroud)
上面的代码段不起作用。尝试了互联网上提供的其他一些片段,但没有用。
顺便说一下,我的SMTP服务器具有防火墙,并且仅从本地网络接受。我没有得到以上代码的任何连接错误日志。
因此可以使用JavaScript Jquery发送电子邮件,如果可以,请提出最佳做法
提前致谢