Firebase 自定义触发器电子邮件模板

问题描述

您如何自定义代码以发送多行电子邮件? (代码来源:Firestore + Swift; trigger email extension

db.collection("mail").addDocument(data: [
    "to": "[email protected]","message": [
      "subject": "Hello from Firebase","html": "This is an <code>HTML</code> email body."
    ]
]) { err in
    if let err = err {
        print("Error writing document: \(err)")
    } else {
        print("Document successfully written!")
    }
}

解决方法

这应该是一个评论,但我是一个新的 SO 用户。
无论如何,如果我理解正确,您需要多行电子邮件。 如果您在邮件正文中使用 html 代码,我认为您可以使用换行符 </br>。另一方面,纯文本可以使用新行 \n
如果这不能回答问题,我想我只是误解了一些东西。 :/

,

请查看官方文档,了解如何根据写入指定 Cloud Firestore 集合的文档内容撰写和发送电子邮件。

Trigger Email Firebase Extension

可以配置的参数有:

Cloud Functions location
SMTP connection URI
Email documents collection
Default FROM address
Default REPLY-TO address
Users collection
Templates collection

您还可以选择将此扩展程序配置为使用 Handlebar 模板呈现电子邮件

,

如果我对你的理解正确的话,你会遇到和我类似的问题;用户可以输入一些可以包含换行符的内容,您希望它与电子邮件触发器功能触发的电子邮件中的换行符一起显示吗?

如果是这样,这就是我所做的(在 Vue 中,但显然可以根据需要进行更改)。

我有一个名为“message”的数据属性,它会自动将换行符更改为 \n。我正在做的是将表单的副本保存到一个集合(“查询”)并通过写入不同的集合(“电子邮件”)来触发电子邮件。

在我的函数中,我只是使用不同的变量来更改换行符以使用 HTML 标记

let HTMLmessage = this.form.message.replace(/\n/g,'<br/>');

然后,当我添加到电子邮件集合时,它会接受:

db.collection('email').add({
            to: '[email protected]',template: {
              name: "template_name",data: {
                name: this.form.name,email: this.form.email,phone: this.form.phoneNumber,message: HTMLmessage
              }
            },replyTo: this.form.email,from: this.form.email,})

并且在上面考试的电子邮件模板(“template_name”)中,它使用了三重把手:

<p>{{{message}}}</p>

这会保留电子邮件中的换行符

enter image description here

可能有更好的方法来做到这一点,但这对我有用。总结:

  1. 将 \n 替换为 HTML 标记,然后将其发送到模板
  2. 确保模板在该特定领域使用三重把手