【问题标题】:Nodemailer doesn't find any images but finds textNodemailer 没有找到任何图像,但找到了文本
【发布时间】: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,但我是不是忘记了什么? 如果不能,我该如何发送图片?

【问题讨论】:

标签: html node.js nodemailer


【解决方案1】:

您应该注意到的第一件事是:您将这些图片放在哪里? images src 指向一个根文件夹。 我认为图像中您的 404 的可能性可能是:

  • 目录不公开,所以在请求中找不到图片
  • 您在 src 中指向了错误的路径

即使您正在使用邮件协议,基本上请求也是 http(s),并且需要在您的服务器(或 CDN)中搜索有效地址以获取您尝试显示的内容。

【讨论】:

  • 您好,感谢您的回答,logo_synapture.png 、 escape.png 和 index.handlebars 在同一个文件夹中。
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 2015-10-28
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多