我正在设置一组电子邮件,首先从MySql表中提取信息
<cfoutput>
<cfset headls ='PersonFn,PersonLn,PersonEmail1'>
<cfquery name = "sord" datasource = "whatever">
select distinct PersonID,#headls# from PersonRepDb
</cfquery>
</cfoutput>这会产生正确的输出。然后,我遍历查询结果,向每个人发送一封电子邮件。
<cfset sordlen = sord.recordcount>
<cfloop from = "1" to = "#sordlen#" index = 'j'>
<cfmail
from = "#session.user#"
to = "#sord['PersonEmail1'][j]#"
password = "#session.password#"
username = "#session.user#"
server = "localhost"
replyto = "#txt['replyto']#"
subject = "#txt['repsubject']#"
type = "html" >
...stuff
</cfmail>
</cfloop>当我尝试运行这个程序时,我得到一个错误消息:“必须将以下属性之一定义为,cc,bcc”。显然,"to“就在那里,如果我将变量替换为一个特定的电子邮件,比如"joan@gmail.com”,错误消息就会消失。所以很明显'to‘后面的变量没有被解码。
我尝试将变量sord'PersonEmail1‘拆分为@之前和之后的部分
<cfset preml = GetToken("#sord['PersonEmail1'][j]#",1,'@')>
<cfset posml = GetToken("#sord['PersonEmail1'][j]#",2,'@')>然后将to设置为
to = "#preml#@#posml#" 但这并没有帮助。
有人能告诉我怎么解决这个问题吗?
发布于 2019-04-03 00:32:15
这应该就是您需要做的全部工作。如果您试图使DB中的列列表成为动态的,那么可能不需要这样做。在发送之前,只需验证电子邮件列的内容是否为有效的电子邮件格式。
<cfquery name="sord" datasource="whatever">
select distinct
PersonID,
PersonFn,
PersonLn,
PersonEmail1
from
PersonRepDb
</cfquery>
<cfloop query="sord">
<cfif isValid("email", sord.PersonEmail1)>
<cfmail
from = "#session.user#"
to = "#sord.PersonEmail1#"
password = "#session.password#"
username = "#session.user#"
server = "localhost"
replyto = "#txt['replyto']#"
subject = "#txt['repsubject']#"
type = "html">
...stuff
</cfmail>
</cfloop>https://stackoverflow.com/questions/55464053
复制相似问题