Sending Emails

CFML gives you the cfmail tag/construct to easily send email in text or HTML format without any ceremony. Just register your mail servers in the administrators or the Application.cfc and you are ready to start sending emails in a jiffy!

cfmail(
subject="Your Order",
from="myshop@ortus.com",
to="whatever@gmail.com,another@gmail.com",
bcc="orders@ortus.com"
type="HTML"
){
// body of the email.
writeOutput( 'Hi there,' );
writeOutput( 'This mail is sent to confirm that we have received your order.' );
};

The cfmail tag/construct has tons of attributes, so check them out in the docs https://cfdocs.org/cfmail

Query Binding

You can even bind the mail construct with a query, and the engine will send as many emails as rows in the query for you:

var qData = userService.getNewUsers();
cfmail(
subject="Welcome to FORGEBOX!",
from="myshop@ortus.com",
to="#qData.email#",
query=qData
){
writeOutput( "
Dear #qData.name#,
Welcome to your FORGEBOX account! Play and just do it!
")
};

Sending Attachments

You can also send attachments to your email destinations very easily using the mimeattach attribute or via the child cfmailparam() construct, which allows you to send multiple attachments, or headers.

cfmail(
subject="Your Order",
from="myshop@ortus.com",
to="whatever@gmail.com,another@gmail.com",
bcc="orders@ortus.com"
mimeattach=expandPath( "/my/path/attach.pdf" );
){
// body of the email.
writeOutput( 'Hi there,' );
writeOutput( 'This mail is sent to confirm that we have received your order.' );
};
cfmail( subject="Attachments", to="you@domain.com", from="me@domain.com" ) {
cfmailparam( name="Reply-To", value="me@domain.com" );
cfmailparam( file="c:\files\readme.txt" );
cfmailparam( file="c:\files\logo.gif" );
}