【发布时间】:2021-05-24 15:01:12
【问题描述】:
我尝试创建个性化模板并使用此模板发送自动消息。
我使用 nodemailer,所以我使用 nodeJs,并且我创建了一个 html 模板。文本出现在邮件上,但图像没有。
我遵循了一个教程,并且有我的 .handlebars 我在其中做我的 html(图片是真实的,我将一张粘贴在同一个文件夹中)
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Formulaire</title>
<link rel="stylesheet" href="../css/mail.css">
</head>
<body>
<div class='txt2'>
<div>
<img class='logo_synapture' src="logosynapture.png">
</div>
<div>
<img class='logo_hackathon' src="escape.png">
</div>
</div>
<div class='txt'>
<h1>Merci d'avoir rejoint notre Hackathon</h1>
</div>
<div class='cordonnees'>
<div>
</div>
</div>
</body>
</html>
还有我的 .js
/*
Video: https://www.youtube.com/watch?v=38aE1lSAJZ8
Don't forget to disable less secure app from Gmail: https://myaccount.google.com/lesssecureapps TODO:
*/
require('dotenv').config();
const nodemailer = require('nodemailer');
const hbs = require('nodemailer-handlebars');
const log = console.log;
// Step 1
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'mail', // TODO: your gmail account
pass: 'mdp' // TODO: your gmail password
}
});
// Step 2
transporter.use('compile', hbs({
viewEngine: 'express-handlebars',
viewPath: './views/'
}));
// Step 3
let mailOptions = {
from: 'hacktonthon@gmail.com', // TODO: email sender
to: 'mail.com', // TODO: email receiver
subject: 'Nodemailer - Test',
text: 'Wooohooo it works!!',
template: 'index',
context: {
name: 'Accime Esterling'
} // send extra values to template
};
// Step 4
transporter.sendMail(mailOptions, (err, data) => {
if (err) {
return log('Error occurs');
}
return log('Email sent!!!');
});
我不明白问题可能是什么,我在互联网上搜索但没有很多答案。
我不认为 nodemailer 无法读取 img,但我是不是忘记了什么? 如果不能,我该如何发送图片?
【问题讨论】:
-
这能回答你的问题吗? Embed image in email body nodemailer nodejs
标签: html node.js nodemailer