我正在尝试创建一个发送邮件的应用程序。它获取用户输入(To、Subject、Message),单击表单按钮发送邮件,并将该邮件存储在mongodb上
前端
<form>
<span>
to :<input type='text' >
</span>
cc :<input type='text' >
</span>
bcc :<input type='text' >
</span>
<span>
subject :<input type='text' >
</span>
<span>
message :<input type='text' >
</span>
</form>
后端
to = 'sender@gmail.com',
cc = 'sender@gmail.com',
bcc = 'sender@gmail.com',
subject = 'A project proposal',
message = 'the body of your mail',
etc...
>
架构
常量mongoose=require(“mongoose”);
const UserSchema=new mongoose.schema({
收件人:{type:String,},抄送:{type:String,},密件抄送:{type:String,},密件抄送:{type:String,},主题:{type:String,},邮件:{type:String,},附件:{type:String,},日期:{type:Date,Default:Date.Now},
});
常量Mail=mongoose.model(“Mail”,UserSchema);
module.exports=邮件;
A.P.I
const Mail = require('../models/Mail');
// Home Page
router.get('/', forwardAuthenticated, (req, res) => res.render('home'));
// Mail
router.get('/mail', ensureAuthenticated, (req, res) =>
res.render('mail', {
user: req.user,
mail: req.mail
})
);
router.post('/mail', (req, res) => {
const { to, cc, bcc, subject, message, attachment, account } = req.body;
let errors = [];
if (!name || !subject || !message || !account) {
errors.push({ msg: 'Please enter all fields' });
}
if (errors.length > 0) {
res.render('register', {
errors,
name,
subject,
message,
account
});
} else {
const newMail = new Mail({
to,
cc,
bcc,
subject,
message,
attachment,
account
});
newMail
.save()
.then(mail => {
req.flash(
'success_msg',
'mail sent'
);
})
.catch(err => console.log(err));
}
})
module.exports = router;
我在这里怎么做?
尝试express-mailer
发送电子邮件。在这种情况下,您还可以通过逗号分隔的列表或数组以抄送和密件抄送方式发送电子邮件。请仔细检查特快专递文件。
var app = require('express')(),
var mailer = require('express-mailer')
mailer.extend(app, {
emailFrom: "yourEmail@gmail.com",
host: 'smtp.gmail.com', // hostname
secureConnection: true, // use SSL
port: 465, // port for secure SMTP
transportMethod: 'SMTP', // default is SMTP.
auth: {
user: 'yourEmail@gmail.com', // Your Email
pass: '*******' // Your Password
}
});
app.mailer.send('../views/emailTemplate/emailTemplate.ejs', { to: 'reciverEmail@gmail.com', subject: 'Your Email Subject'}, function (err, message) {
if (err) throw new Error(err);
console.log(message);
return;
});
我使用的是'nodeMailer'模块,你可以只阅读他们的文档,但我给你展示了一个简单的例子:
var nodemailer = require ('nodemailer');
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
var transporter = nodemailer.createTransport ({
service: 'gmail',
auth: {
user: 'youre@gmail.com',
pass: 'yourePassword'
}
});
module.exports={
sendAUTH:function(link, email){
const mailOptions = {
from: 'youre@gmail.com',
to: email,
subject: 'Subject of your email',
html: `<a href='`+link+`'>link</a>`
};
transporter.sendMail (mailOptions, function (err, info) {
if (err)
console.log (err)
else
console.log (info);
});
}
}