
1196
DEVELOPING
COLDFUSION 9 APPLICATIONS
Using External Resources
Las
t
upda
te
d 8/5/2010
Sending query-based e-mail
In the following example, a query (ProductRequests) retrieves a list of the customers who inquired about a product
during the previous seven days. ColdFusion sends the list, with an appropriate header and footer, to the marketing
department:
<cfmail
query="ProductRequests"
from="[email protected]"
to="[email protected]"
subject="Widget status report">
Here is a list of people who have inquired about
MyCompany Widgets during the previous seven days:
<cfoutput>
#ProductRequests.FirstName# #ProductRequests.LastName# (#ProductRequests.Company#) -
#ProductRequests.EMailAddress#&##013;
</cfoutput>
Regards,
The webmaster
</cfmail>
Reviewing the code
The following table describes the code:
Sending e-mail to multiple recipients
In addition to simply using a comma-delimited list in the
to
attribute of the cfmail tag, you can send e-mail to multiple
recipients by using the
query
attribute of the
cfmail
tag. The following examples show how you can send the same
message to multiple recipients and how you can customize each message for the recipient.
Sending a simple message to multiple recipients
In the following example, a query (BetaTesters) retrieves a list of people who are beta testing ColdFusion. This query
then notifies each beta tester that a new release is available. The contents of the
cfmail
tag body are not dynamic. What
is dynamic is the list of e-mail addresses to which the message is sent. Using the variable
#TesterEMail#,
which refers
to the TesterEmail column in the Betas table, in the
to
attribute, enables the dynamic list:
Code
Description
<cfoutput>
#ProductRequests.FirstName#
#ProductRequests.LastName#
(#ProductRequests.Company#) -
#ProductRequests.EMailAddress#&##013;
</cfoutput>
Presents a dynamic list embedded within a normal message,
repeating for each row in the ProductRequests query. Because the
cfmail
tag specifies a query, the
cfoutput
tag does not use a
query
attribute. The
&##013;
forces a carriage return between output
records.