Send email using HTML

static void SendEmailUsingHTML(Args _args)

{

    System.Text.StringBuilder   htmlTable;

    SysEmailParameters          parameters = SysEmailParameters::find();

    SMTPRelayServerName         relayServer;

    SMTPPortNumber              portNumber;

    Str1260                     subject, body;

    SysMailer                   mailer;

    System.Exception            e;

    boolean                     recExsits = false;


    EmployeeTable               employeeTable;


    htmlTable   = new System.Text.StringBuilder();


    htmlTable.Append("<style> table, th, td { border: 1px solid black; padding: 5px; table { border-spacing: 15px; } </style>");

    htmlTable.Append("<table>");


    // Table header


    htmlTable.Append("<TR ALIGN='LEFT'>");

    htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 120px'>");

    htmlTable.Append("Employee ID");

    htmlTable.Append("</TD>");


    htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 140px'>");

    htmlTable.Append("Employee Name");

    htmlTable.Append("</TD>");


    htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 140px'>");

    htmlTable.Append("Location");

    htmlTable.Append("</TD>");


    htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 200px'>");

    htmlTable.Append("Email Address");

    htmlTable.Append("</TD>");


    htmlTable.Append("</TR>");


    htmlTable.Append("<TableBorder = 1>");


    while select EmpId, EmployeeName, Location, Email from employeeTable

    {

        if (!recExsits)

        {

            recExsits=true;

        }

        htmlTable.Append("<TR ALIGN='LEFT'>");

        htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 120px'>");

        htmlTable.Append(employeeTable.EmpId);

        htmlTable.Append("</TD>");


        htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 140px'>");

        htmlTable.Append(employeeTable.EmployeeName);

        htmlTable.Append("</TD>");


        htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 140px'>");

        htmlTable.Append(employeeTable.Location);

        htmlTable.Append("</TD>");


        htmlTable.Append("<TD style='WORD-WRAP: break-word; TEXT-ALIGN: left; WIDTH: 200px'>");

        htmlTable.Append(employeeTable.Email);

        htmlTable.Append("</TD>");


        htmlTable.Append("</TR>");

    }


    htmlTable.Append("</TABLE>");


    if (!recExsits)

    {

        htmlTable.Clear();

        htmlTable.Append('No data');

    }


    if (parameters.SMTPRelayServerName)

        relayServer = parameters.SMTPRelayServerName;

    else

    relayServer = parameters.SMTPServerIPAddress;

    portNumber = parameters.SMTPPortNumber;

    subject = 'Employees Information';


    try

    {

        mailer = new SysMailer();


        mailer.SMTPRelayServer(relayServer,portNumber, '','', parameters.NTLM);


        mailer.fromAddress('support@outlook.com');

        mailer.tos().appendAddress('employee@outlook.com');

        // mailer.ccs().appendAddress('employee2@outlook.com');


        mailer.subject(subject);

        mailer.htmlBody(htmlTable.ToString());


        mailer.sendMail();

    }

    catch (Exception::CLRError)

    {

        e = ClrInterop::getLastException();


        while (e)

        {

            info(e.get_Message());

            e = e.get_InnerException();

        }

        CodeAccessPermission::revertAssert();

        info ('Email sending is failed');

    }


    info('Email sent');

}

Comments

Popular posts from this blog

Assembly reference containing type is not referenced, Object 'CLRObject' could not be created

Open Packing slip posting form when updating Generate picking list

Extract data of PO from the System in Ax 2012