(更新)大家好我想邀请朋友使用Nodejs
发送邮件。主要是服务器端user
和pass
可以使用吗?和邮件也不能发送然后我尝试了很多方法,但无法得到解决方案,如果有人知道解决方案,请帮助我.....
myplunker
HTML: -
<div id="container">
<center>
<input id="to" type="text" placeholder="Enter E-mail ID" /><br><br>
<input id="subject" type="text" placeholder="Write Subject" /><br><br>
<textarea id="content" cols="40" rows="5" placeholder="Message"></textarea><br><br>
<button id="send_email">Send Email</button>
</center>
<span id="message"></span>
</div>
服务器: -
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
use_authentication: true,
auth: {
user: "sample@gmail.com",
pass: "password"
}
});
app.get('/',function(req,res){
res.sendfile('index.html');
});
app.get('/send',function(req,res){
var mailOptions={
to : req.query.to,
subject : req.query.subject,
text : req.query.text
}
console.log(mailOptions);
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
res.end("error");
}else{
console.log("Message sent: " + response.message);
res.end("sent");
}
});
});
答案 0 :(得分:0)
以下步骤可以帮助您:
将
var nodemailer=require("nodemailer")
添加到服务器的顶部 脚本将
var express=require("express"); var app=express()
添加到服务器脚本的顶部
要测试是否正在发送电子邮件,请移动函数外部app.get(“/ send”)脚本中的内容并对其他所有内容进行评论(For Now)应该类似于:
var nodemailer=require("nodemailer");
var express=requre("express");
var app=express();
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
use_authentication: true,
auth: {
user: "email@domain.com",
pass: "PASS"
}
});
var mailOptions={
to : "email@domain.com",
subject :"SUBJECT",
text : "MESSAGE"
}
console.log(mailOptions);
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
});
/*
app.get('/',function(req,res){
res.sendfile('index.html');
});
app.get('/send',function(req,res){
var mailOptions={
to : req.query.to,
subject : req.query.subject,
text : req.query.text
}
console.log(mailOptions);
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
res.end("error");
}else{
console.log("Message sent: " + response.message);
res.end("sent");
}
});
});*/
请确保您为尝试发送电子邮件的电子邮件启用此功能:https://www.google.com/settings/security/lesssecureapps
确定你的版本的nodemailer是正确的,你的设置应该是0.71v:How to downgrade this node.js module to specific version and prevent automatic upgrade later?
使用终端运行服务器脚本:
node fileName.js
(如果没有任何提示可以帮助您复制错误堆栈吗?)如果一切正常,则取消注释所有内容并删除app.get之外的mailOptions和smtpTransport。一切都应该工作......
祝你好运,如果你有任何问题,我会很乐意提供帮助。