想实现用户点击提交表单之后,将表单的内容以邮件的形式发送到指定的邮箱,
服务器端用 node.js ,发送邮件用 nodemailer 模块。
我的思路是给提交按钮绑定 submitData (),通过 xhr 发送到服务器,
在后台获取并替换 mailOptions 的 content 。
代码如下
单独运行已经可以发送邮件,
var nodemailer = require ('nodemailer');
var transporter = nodemailer.createTransport ({
service: 'hotmail',
auth: {
user: 'xxx@hotmail.com',
pass: '000000'
}
});
var mailOptions = {
from: 'xxx@hotmail.com', // sender address
to: 'zzz@hotmail.com', // list of receivers
subject: 'Hello', // Subject line
text: 'Hello world', // plaintext body
html: '<h1>Hello world </h1>' // content
};
transporter.sendMail (mailOptions, function (error, info ){
if (error ){
console.log (error );
}else{
console.log ('Message sent: ' + info.response );
}
});
function submitData () {
var xhr =creatXHR ();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 ) {
if (xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 ){
alert (xhr.responseText );
} else {
alert ("Request was unsuccessful:" + xhr.status );
}
}
};
xhr.open ("post","postexmple.js",ture );
xhr.setRequestHeader ('Content-Type',"application/x-www-form-urlencoded");
var form = documnet.getElementById ('user-info')
xhr.send (serialize (form ));
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.