Robert Zehnder
05/09/2023, 2:49 PMRobert Zehnder
05/09/2023, 2:51 PMcomponent {
property name = "wirebox" inject = "wirebox";
property name ="dsn" inject="coldbox:setting:dsn";
property name = "mailService" inject = "MailService@cbmailservices";
function index (event, rc, prc) {
variables.mailService
.newMail(
to: "<mailto:robert@email.com|robert@email.com>",
subject: "Test email",
type: "plain"
)
.setBodyTokens({
"[%message%]": "You are here"
})
.setBody(" Message: @message@ ")
.send();
writeDump(var = "here", abort = 1);
}
}
Robert Zehnder
05/09/2023, 2:54 PMRobert Zehnder
05/09/2023, 2:58 PMian.hickey
05/09/2023, 3:01 PMmail.setBody( templateId );
Robert Zehnder
05/09/2023, 3:02 PMRobert Zehnder
05/09/2023, 3:03 PMRobert Zehnder
05/09/2023, 3:04 PMRobert Zehnder
05/09/2023, 3:24 PMRobert Zehnder
05/09/2023, 3:58 PMdynamic_template_data
structure in the personalizations. Substitutions don't seem to be valid for dynamic templatesemmet
05/09/2023, 6:13 PMcomponent output=false {
variables.sendgrid = new com.sendgridcfc.sendgrid( apiKey = server.system.environment.SENDGRID_API_KEY );
public struct function sendTemplate(
required string templateID,
required struct messageData,
) output = false {
// mesageData example
// local.messageData = {
// "emailTo" : arguments.emailTo,
// "emailFrom" : arguments.emailFrom,
// "emailFromName" : arguments.emailFromName,
// "cc" : "",
// "bcc" : "",
// "attachment" : "",
// "subject" : arguments.subject
// }
local.envelope = local.envelope = new com.sendgridcfc.helpers.mail()
.from({
name = arguments.messageData.emailFromName?:"",
email = arguments.messageData.emailFrom
})
.to(arguments.messageData.emailTo)
.templateId(arguments.templateID)
.withDynamicTemplateData(messageData);
return send(envelope, <http://arguments.messageData.cc?:%22%22|arguments.messageData.cc?:"">, arguments.messageData.bcc?:"", arguments.messageData.attachment?:"");
}
private struct function send(
required envelope,
string cc = "",
string bcc = "",
string attachment = ""
) output = false {
if (len(trim(<http://arguments.cc|arguments.cc>))) {
envelope.addCC(<http://arguments.cc|arguments.cc>);
}
if (len(trim(arguments.bcc))) {
envelope.addBCC(arguments.bcc);
}
if (len(trim(arguments.attachment))) {
envelope.attachFile(arguments.attachment);
}
return sendgrid.sendMail(envelope);
}
}
Robert Zehnder
05/09/2023, 6:56 PM