Thursday, January 21, 2016

Mail SMTP

static void SendEmail(Args _args)
{
    SysEmailParameters parameters = SysEmailParameters::find();
    SMTPRelayServerName relayServer;
    SMTPPortNumber portNumber;
    SMTPUserName userName;
    SMTPPassword password;
    Str1260 subject,body;
    InteropPermission interopPermission;
    SysMailer mailer;
    System.Exception e;
     SysEmailMessageTable    message;
    Map                     mappings;
    str                     messageBody;
    str                     htmlText;
    boolean isHTML;
    CustTable custtable;
    ;
    if (parameters.SMTPRelayServerName)
        relayServer = parameters.SMTPRelayServerName;
    else
        relayServer = parameters.SMTPServerIPAddress;
    portNumber  = parameters.SMTPPortNumber;
    userName    = parameters.SMTPUserName;
    password    = SysEmailParameters::password();

    CodeAccessPermission::revertAssert();
    try
    {
        interopPermission = new InteropPermission(InteropKind::ComInterop);
        interopPermission.assert();
        mailer = new SysMailer();
        mailer.SMTPRelayServer(relayServer,portNumber,userName,password, parameters.NTLM);
        //instantiate email
        mailer.fromAddress("ax.notification@mycompany.com");
        mailer.tos().appendAddress("nirmal@cbizol.com");
        mailer.subject(subject);
        message = SysEmailMessageTable::find("Reminder", "en-us");
        subject     = message.Subject;
        custTable   = custTable::find('2202');
        mappings = new Map(Types::String, Types::String);
        mappings.insert('contact',custTable.name());
        mappings.insert('invoicedate', CompanyInfo::find().Name);
        mappings.insert('user', HcmWorker::find(DirPersonUser::current().worker()).name());
        isHTML = (message.LayoutType == SysEmailLayoutType::StaticLayout);
        messageBody = SysEmailMessage::stringExpand(message.Mail, mappings);
        mailer.htmlBody(messageBody);
        mailer.sendMail();
        CodeAccessPermission::revertAssert();
        info("Email has been send!");
    }
    catch (Exception::CLRError)
    {
        e = ClrInterop::getLastException();
        while (e)
        {
        info(e.get_Message());
        e = e.get_InnerException();
        }
        CodeAccessPermission::revertAssert();
        //info(e);
        info ("Failed to Send Email some Error occure");
    }
}

No comments:

Post a Comment

Copy Markup charges while posting purchase invoice using X++

 Copy Markup charges while posting purchase invoice using X++ Class: Important: Code logic is just for Reference.  New class => Duplicate...