양식을 사용하여 제출 된 이메일 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...")
});
다음은
<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>
아래 내 html로 ID를 우편으로 발송되는 템플릿 양식을 사용하여 제출 인 EJS 파일을 내 폼 페이지 코드입니다. 그때 양식에서 이름을 읽고 어떻게
<html>
<body>
<h1>Hello World!</h1>
<a href="http://www.google/com">Link</a>
</body>
</html>
는 이메일에서, 각 이메일에, 내가 좋아하는, 변수를 사용하여 그 사람에 해결할 수 있도록 "안녕하세요 씨 {{이름}}"포함
전자 메일을 차단하지 않고 HTML 파일에 변수를 전달하는 방법을 알아낼 수 없습니다. 전자 메일 공급자가 거의 모든 전자 메일을 JS로 차단하기 때문에 HTML 태그 안에 스크립트 태그를 사용하여 자바 스크립트를 사용할 수 없기 때문입니다!
누군가 나를 도와 드릴까요?
먼저 HTML을 생성 한 후 이메일 객체에 포함됩니다. – yBrodsky
어떻게하면됩니까? 어떤 도구가 필요합니까? 어리석은 질문을해서 유감스럽게 생각합니다. JS와 Node의 초보자입니다. : S –
다음과 같이 사용합니다. https://github.com/crocodilejs/node-email-templates#basic – yBrodsky