将 CFMAIL 转换为等效脚本并使用查询

Converting CFMAIL to script equivalent and using a query

所以我正在将遗留应用程序转换为 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 );                                
}

这本身似乎过于冗长,但至少在发送给单个收件人或以逗号分隔的列表时有效。但无论我做什么,我都无法将其发送到查询的收件人列表。

我尝试=getRecipients 并得到一个错误,指出 "to" 的值不是字符串。我试过="getRecipients",虽然我没有收到错误,但邮件没有发送(甚至排队等候发送)。其他各种尝试也都出错或无声地失败。

我读了SO discussion here,它似乎表明在基于脚本的邮件中使用查询实际上是行不通的。但那次讨论是从 2012 年开始的——现在肯定不再是这样了,对吧?当然可以在脚本中复制这一非常基本的功能,对吧?我错过了什么?我对此进行了大量研究,我发现的每个示例都只发送到一个硬编码地址。

如果有任何意见或建议,我将不胜感激。非常感谢您的帮助!

我相信会是:

var oMail = mailService
    .newMail(
        to=valueList(getRecipients.email),
        from="me@me.org",
        subject="Hello everybody from me",
        bodyTokens={ name=name} 
        );

参见:https://cfdocs.org/valuelist