json-新行不与AWS SES保持一致
我正在尝试从联系表单中的<input>s 和<textarea>s 获取数据,将它们发送到我的 API,然后将它们放入 AWS SES 模板中,以便将这些值作为电子邮件发送。
对于任何人<textarea>,当我做类似的事情时
TemplateData: JSON.stringify(formValues),
给定formValues: FormValues哪个具有直接来自 HTML 输入的值
export type FormValues = {
email: string,
message: string,
}
它会导致发送一封电子邮件,删除所有新行。它似乎取代了\\n对最终电子邮件没有影响的它们。
我认为理想情况下我会message.replaceAll("\n", "\r\n")为Text电子邮件和电子邮件message.replaceAll("\n", "<br/>")做一个Html。但这似乎很不方便,特别是因为这种格式被卡在定义如下的模板中
{
"Template": {
"TemplateName": "Contact",
"SubjectPart": "Enquiry",
"HtmlPart": "<!DOCTYPE html><html lang=\"en-GB\"><body><b>Email:</b> {{email}}<br/><br/><b>Message:</b> {{message}}</body></html>",
"TextPart": "Email: {{email}}\r\nMessage: {{message}}"
}
}
所以,我看不出不使用电子邮件和电子邮件如何解决<br/,Html但\t\r\n我Text也想不出一种干净的方法来实现这一点。
谢谢。
编辑:我意识到它可能与我的 sanitize 功能有关,看起来像
function sanitiseFormValue(formValue: string): string {
return formValue
.replaceAll("&", "&")
.replaceAll("<", "<")
.replaceAll(">", "&rt;")
.replaceAll("\\", "\")
.replaceAll("\"", """)
.replaceAll("'", "'")
.replaceAll("`", "`")
}
它在JSON.stringify. 但是,我不确定如何解决这个问题。如果这是干扰,我会感到惊讶。