我正在嘗試向使用表單提交的電子郵件ID發送動態郵件。
以下是我的app.js代碼。使用ejs和節點創建動態html
//Importing Packages
var express = require('express');
var nodemailer = require('nodemailer');
var bodyParser = require('body-parser');
//Applying Express,Ejs to Node
app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended:true}));
//Creating Nodemailer Transport
var transporter = nodemailer.createTransport({
host: 'smtp.zoho.com',
port: 465,
secure: true,
auth: {
user: '[email protected]*****.com',
pass: '******'
}
});
//Root Route Setup
app.get('/', function(req, res){
res.render("landing")
});
//Route to send the mail
app.post('/send', function(req,res){
//Setting up Email settings
var mailOptions = {
from: '[email protected]*****.com',
to : req.body.mail,
subject: 'Verify Your Email',
generateTextFromHtml : true,
html: { path: './tmpl.html'}
};
//Execute this to send the mail
transporter.sendMail(mailOptions, function(error, response){
if(error) {
console.log(error);
} else {
console.log(response);
}
});
res.send("Mail succesfully sent!")
});
//Server &Port Settings
app.listen(3333, function(){
console.log("Server is running...")
});
下面是我的表單頁面的代碼,這是一個EJS文件
<form action="/send" method="POST">
<input type="email" name="mail" placeholder="Enter your email">
<input type="text" name="name" placeholder="Enter your name">
<input type="submit">
</form>
以下是被郵寄到我的ID HTML模板使用的形式提交。
<html>
<body>
<h1>Hello World!</h1>
<a href="http://www.google/com">Link</a>
</body>
</html>
我如何讀取表單名稱,然後包括在電子郵件,讓每封電子郵件,我可以用一個變量地址給那個人,像「你好先生{{名}}」
我無法弄清楚如何將變量傳遞給html文件而沒有電子郵件攔截它,因爲我無法在HTML文件中使用腳本標籤使用Javascript,因爲幾乎所有的郵件提供程序都會阻止電子郵件中的JS!
有人可以幫我解決這個問題嗎?
你需要做的是首先生成HTML,然後將其包含在電子郵件對象。 – yBrodsky
我該怎麼做?我需要哪些工具?我很抱歉提出愚蠢的問題,我是JS和Node的初學者。 :S –
我使用這個:https://github.com/crocodilejs/node-email-templates#basic – yBrodsky