In this blog we see how to send mail through SMTP by using template
Step 1:-
Code :-
Map templateTokens;
templateTokens = new Map(Types::String, Types::String);
SysMailerSMTP mailer = new SysMailerSMTP();
try
{
switch (workflowContext.parmTableId())
{
case tablenum(LedgerJournaltable) :
SysMailerMessageBuilder builder = new SysMailerMessageBuilder();
SysEmailParameters parameters = SysEmailParameters::find();
SysEmailMessageSystemTable messageTable;
str envUrl = URLUtility::getUrl();
select messageTable
where messageTable.EmailId == "Template name";
templateTokens.insert("envUrl",envUrl);
templateTokens.insert("Ledger journal table.JournalName",strFmt("%1",ledgerJournaltable.JournalName));
if (parameters.SMTPRelayServerName)
{
mailer.smtpRelayServer(parameters.SMTPRelayServerName,
parameters.SMTPPortNumber,
parameters.SMTPUserName,
SysEmailParameters::password(),
parameters.SMTPUseNTLM,parameters.SMTPRequireSSL);
}
else
{
warning("ServerNotFound");
}
if (messageTable.EmailId)
{
builder.setFrom(parameters.SMTPUserName);
builder.addTo(conPeek(con, i)).setSubject(strFmt("%1",messageTable.Subject + ledgerJournaltable.JournalNum)).setBody(SysEmailMessage::stringExpand(messageTable.Mail, SysEmailTable::htmlEncodeParameters(templateTokens)));
SysMailerFactory::getNonInteractiveMailer().sendNonInteractive(builder.getMessage());
info('Mail successfully sent');
}
}
}
catch (Exception::Error)
{
throw error("@SYS326780");
}
}
No comments:
Post a Comment