我正在实现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”按钮时,没有任何反应。我希望用户单击一个按钮并重定向到该网站。请帮我解决这个问题。
答案 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>