Sunday, February 15, 2026

Send mail Through SMTP with Template

 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");

        }

    }

Step 2:-Configure template name in frontend 

Path:-

System administration > Setup > Email > System email templates

 


Thank you!!
Note:-Don't forget to configure SMTP details in front end and make sure done with Test connection

No comments:

Post a Comment

Custom Workflow in D365fo

In this blog we see all about Workflows development in D365fo  Output as shown in below We will see in this blog first way Step1:-Create a b...