html电子邮件通知无法正常运行

时间:2019-12-24 13:36:49

标签: email notifications html-email nodemailer email-notifications

我正在实现Nodemailer来发送来自Node.Js的电子邮件。但是,HTML页没有正确响应。 我的index.js

const nodemailer = require('nodemailer');
const fs = require('fs');
const handlebars = require('handlebars');

const transporter = nodemailer.createTransport({
    host: "smtp.mailtrap.io",
    port: 2525,
    auth: {
        user: "xxxx",
        pass: "xxxx"
    }
});

const readHTMLFile = (path, callback) => {
    fs.readFile(path, {encoding: 'utf-8'}, (err, html) => {
        if(err){
            callback(err);
        }
        else{
            callback(null,html);
        }
    });
}

readHTMLFile('index.html', (err, html) => {
    const template = handlebars.compile(html);
    const replacements = {
        username: 'Bob'
    };
    const htmlToSend = template(replacements);
    const message = {
        from: 'testxxxx@example.com',
        to: 'to@xxxx.com',
        subject: 'No reply',
        html: htmlToSend
    }

    transporter.sendMail(message, (error, info) => {
        if(error){
            console.log(`error: ${JSON.stringify(error)}`);
        }
        else{
            console.log('Email sent: ' + info.response);
        }
    });
});

我的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Email Notification</title>
</head>
<body>
<div>
    <h3>Hey! {{username}}!!</h3>
    <form action="https://www.google.com">
        <input type="submit" value="Go to Google" />
    </form>
    <h4><a href="https://www.stackoverflow.com">Go to Stackoverflow</a></h4>
</div>

现在,用户收到电子邮件,并且用户可以单击“转到Stackoverflow”链接并重定向到stackoverflow网站。但是,当用户单击“转到Google”按钮时,没有任何反应。我希望用户单击一个按钮并重定向到该网站。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

问题是您正在使用表单。某些电子邮件客户端不接受表格。有关详细说明,请参见https://www.sitepoint.com/forms-in-email/

相反,如果要链接,请像其他示例一样使用import discord from discord.ext import commands @client.command(aliases=["Ban"]) @commands.has_permission(ban_members=True) async def...

如果您希望它看起来像一个按钮,则为了获得最佳效果(即,在所有不同的电子邮件客户端中实现最佳呈现),您需要使用表格方法:

<a>