- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将我当前的文本电子邮件格式更改为 HTML 格式,以便我可以以格式良好的方式发送带有标题、字体值等的电子邮件,如下面的屏幕截图所示。
Image showing email body with header font size etc
目前我有使用 AWS.ses 发送电子邮件的文本格式
exports.sendEmail = function(email, token, event, context) {
var ses = new AWS.SES({
region: process.env.SES_REGION
});
var eParams = {
Destination: {
ToAddresses: [email]
},
Message: {
Body: {
Text: {
//template or environment variable
Data: `Hello ${event.request.userAttributes.given_name},\n\nYour Device Validation Token is ${token}\nSimply copy this token and paste it into the device validation input field.`
}
},
Subject: {
//template or environment variable
Data: "CWDS - CARES Device Validation Token"
}
},
//environment variable
Source: process.env.SOURCE_EMAIL
};
/* eslint-disable no-unused-vars */
ses.sendEmail(eParams, function(err, data){
if(err) {
logWrapper.logExceptOnTest("FAILURE SENDING EMAIL - Device Verify OTP");
logWrapper.logExceptOnTest(event);
logWrapper.logExceptOnTest(context);
context.fail(err);
}
else {
logWrapper.logExceptOnTest("Device Verify OTP sent");
context.succeed(event);
}
});
/* eslint-enable no-unused-vars */
最佳答案
这相当简单,只需添加 Body 节点的 Html 部分,即:
var eParams = {
Destination: {
ToAddresses: [email]
},
Message: {
Body: {
Text: {
Data: `Hello ${event.request.userAttributes.given_name},\n\nYour Device Validation Token is ${token}\nSimply copy this token and paste it into the device validation input field.`
},
Html: {
Data: `<html><head><title>Your Token</title><style>h1{color:#f00;}</style></head><body><h1>Hello ${event.request.userAttributes.given_name},</h1><div>Your Device Validation Token is ${token}<br/>Simply copy this token and paste it into the device validation input field.</div></body></html>`
}
},
Subject: {
//template or environment variable
Data: "CWDS - CARES Device Validation Token"
}
},
//environment variable
Source: process.env.SOURCE_EMAIL
};
var AWS = require('aws-sdk');
var ses = new AWS.SES();
var fs = require('fs');
var Handlebars = require('handlebars');
module.exports.sendemail = (event, context, callback) =>
var eventData = JSON.parse(event.body);
fs.readFile("./contact/emailtemplate.html", function (err, emailHtmlTemplate) {
if (err) {
console.log("Unable to load HTML Template");
throw err;
}
fs.readFile("./contact/emailtemplate.txt", function (err, emailTextTemplate) {
if (err) {
console.log("Unable to load TEXT Template");
throw err;
}
// Prepare data for template placeholders
var emailData = {
"given_name": event.request.userAttributes.given_name,
"token": token
};
// Inject data into templates
var templateTitle = Handlebars.compile(process.env.EMAIL_TITLE);
var titleText = templateTitle(emailData);
console.log(titleText);
emailData.title = titleText;
var templateText = Handlebars.compile(emailTextTemplate.toString());
var bodyText = templateText(emailData);
console.log(bodyText);
var templateHtml = Handlebars.compile(emailHtmlTemplate.toString());
var bodyHtml = templateHtml(emailData);
console.log(bodyHtml);
// Prepare SES params
var params = {
Destination: {
ToAddresses: [
process.env.EMAIL_TO
]
},
Message: {
Body: {
Text: {
Data: bodyText,
Charset: 'UTF-8'
},
Html: {
Data: bodyHtml
},
},
Subject: {
Data: titleText,
Charset: 'UTF-8'
}
},
Source: process.env.EMAIL_FROM
}
console.log(JSON.stringify(params,null,4));
// Send Email
ses.sendEmail(params, function(err,data){
if(err) {
console.log(err,err.stack); // error
var response = {
statusCode: 500,
headers: {
"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Credentials" : true
},
body: JSON.stringify({"message":"Error: Unable to Send Message"})
}
callback(null, response);
}
else {
console.log(data); // success
var response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Credentials" : true
},
body: JSON.stringify({"message":"Message Sent"})
}
callback(null, response);
}
});
}); //end of load text template
}); //end of load html template
};
<!DOCTYPE html>
<html>
<head>
<title>Your New Token</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
h1 { color:#f00; }
</style>
</head>
<body>
<div class="emailwrapper">
<div class="main">
<div class="content">
<h1>Hi {{given_name}}</h1>
<div style="padding:20px;">
<div>your new token is {{token}}.</div>
</div>
</div>
</div>
</div>
</body>
</html>
Hi {{given_name}}
your new token is {{token}}.
关于amazon-web-services - 亚马逊 SES : Sending email to users in HTML format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51703934/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
虽然 SES 仪表板显示了有关通过该服务发送的电子邮件的退回率的汇总统计信息,但我没有看到检索退回的单个地址的方法。这可能吗?我们的情况是,我们在某些电子邮件中设置的“发件人”地址不正确,并解析为我们
我正在使用 nodejs nodemailer 连接到 Amazon SES 电子邮件服务。这一切看起来很简单,但我不断收到错误消息: “我们计算的请求签名与您提供的签名不匹配。请检查您的 AWS s
在下面的代码中,我尝试了 2 种组合 用户(参见附图),密码 访问 ID 和访问 key 两者都给出了相同的错误。我在家庭网络的 eclipse 环境中运行了这段代码。 错误 Attempting t
我正在尝试制作一个可重用的 CloudFormation 模板,并且想要执行某种条件,如果环境参数为“test”(或“prod”以外的任何其他环境),则将 SES 电子邮件仅发送到 gmail帐户(即
我见过几个使用 Amazon SES 的 gem。但是,如果没有该 gem,我找不到亚马逊提供的任何 API 来构建服务。 如何在不使用 gem 的情况下完成 gem 的功能?这对我的应用非常重要,因
我在具有共享托管平台(不在 AWS 上)的网站上使用 AWS SES 当我使用 SMTP 发送电子邮件时,它运行良好。当我尝试调用和使用 API 时,没有发送电子邮件,也没有收到错误消息。 我想使用
我有一个 Amazon SES 连接设置,目前处于沙盒模式。 我有我的电子邮件地址,我使用真实的地址,但对于这篇文章,我们称之为 myemail@arealdomain.com .它已在 SES 中验
我们最近收到了一封来自亚马逊的电子邮件。 Hello, Amazon Web Services currently supports Amazon SES API requests that are
我是 Amazon SES 的新手,我发现有两种以编程方式发送电子邮件的方法: SES API ( http://docs.aws.amazon.com/ses/latest/DeveloperGui
因此,我设法创建了一个控制台应用程序,该应用程序引用以下链接通过SES发送电子邮件:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send
我已经配置了Amazon SES,但是无法发送电子邮件。我收到未验证电子邮件的错误,但无法完成,因为该电子邮件在我拥有的另一个应用程序中运行正常。 这是错误: | Error com.amazonaw
我正在将.Net Core 1.2与Amazon SES(SimpleEmail)一起使用来发送电子邮件(原始电子邮件)。 以下是我们在.net Framework 4.5中使用的工作代码版本:
SES 不允许我进行身份验证。我可以在端口 25 上远程登录,但每当我在命令下方给出“AUTH LOGIN”时,连接就会丢失。 $ telnet.exe email-smtp.us-west-2.am
我已经改用 Amazon SES 从我们的 asp.net 系统发送我们的交易警报,我接到电话说人们收到了重复的电子邮件。 我已经确认我们的程序只向每个用户发送一次电子邮件。 我在第一封电子邮件发送后
是否可以回复我之前使用 AWS SES 发送给用户的电子邮件?我在文档中看不到任何可以实现这一点的内容。 所以我想: (1) 发送电子邮件至电子邮件地址 X (2) 回复来自 (1) 的电子邮件线程
我想知道从哪里开始设置每周个性化摘要以发送给我的用户(超过 20 万)。 它将提取特定于他们的内容,我们目前在带有 SQL 的 Windows EC2 实例上使用 SES 进行通知。 Windows
看来 Amazon SES 已开始支持接收电子邮件: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-cons
最近通过 Java Amazon SDK(v. 1.11.202),我将 1000 个 SendEmailRequests 排队到同一电子邮件地址。请求以 14/s 的速率排队,这是我的配额限制。没有
我们使用 aws 服务器,我们的应用程序通过亚马逊的简单电子邮件服务 (SES) 向客户发送电子邮件。 当收件人打开外出回复时,SES 将他们视为退回并在发送几次后阻止该电子邮件 ID。 这是 SES
我是一名优秀的程序员,十分优秀!