coldfusion - 将 CFMAIL 转换为等效脚本并使用查询
问题描述
所以我正在将旧应用程序转换为 ColdBox MVC 并尝试将标签转换为脚本。在过去我会做
<cfmail
query="getRecipients"
type="text/html"
from="Me <me@me.org>"
to="#getRecipients.email#"
subject="Hello everybody from me">
<p>Hey #getRecipients.name#, how are you?</p>
</cfmail>
我完成了。邮件将发送给从 getRecipients 查询返回的任何人。但现在看来我必须
var oMail = mailService
.newMail(
to="test1@test.com",
from="me@me.org",
subject="Hello everybody from me",
bodyTokens={ name=name}
);
oMail.setBody("
Hey @name@, how are you?
");
var results = mailService.send( oMail );
}
这本身似乎过于冗长,但至少在发送给单个收件人或逗号分隔列表时有效。但无论我做什么,我都无法将其发送到查询的收件人列表。
我尝试了 to=getRecipients 并得到一个错误,即“to”的值不是字符串。我尝试了 to="getRecipients",虽然我没有收到错误,但邮件没有发送(甚至排队等待发送)。其他各种尝试也要么出错,要么静默失败。
我在这里阅读了SO 讨论,这似乎表明无法在基于脚本的邮件中使用查询。但那个讨论是从 2012 年开始的——肯定不再是这样了,对吧?肯定可以在脚本中复制这一非常基本的特性,对吧?我错过了什么?我对此进行了大量研究,我发现的每个示例都只发送到一个硬编码地址。
我将不胜感激任何意见或建议。非常感谢您的帮助!
解决方案
我相信会是:
var oMail = mailService
.newMail(
to=valueList(getRecipients.email),
from="me@me.org",
subject="Hello everybody from me",
bodyTokens={ name=name}
);
推荐阅读
- node.js - 循环检查邮箱、阅读电子邮件和创建 PDF
- docker - 使用 healthcheck 测试最小的 docker 容器
- android - ionic 4 android,android错误:找不到符号
- excel - 删除 Excel VBA 用户窗体中列表框上的滚动条
- excel - 两个接缝相同但结果不同的循环
- python-3.x - 指定分割字符串 Python 的规则
- javascript - Dragula 没有更新动态列表
- php - 如何在 laravel 数据库的同一个表中添加 2 个自动增量列
- php - PHP替换HTML表格标签内的数据
- node.js - NodeJS 启动 mongoDB 服务器