Skip to main content

X++ code to Sending email using code and data with table format


static void SendEmail(Args _args)
{
    SysEmailParameters parameters = SysEmailParameters::find();
    SMTPRelayServerName relayServer;
    SMTPPortNumber portNumber;
    SMTPUserName userName;
    SMTPPassword password;
    Str subject,body;
    InteropPermission interopPermission;
    SysMailer mailer;
    System.Exception e;
    str s;
    CCHTMLString            htmlString;
    ;
    if (parameters.SMTPRelayServerName)
    relayServer = parameters.SMTPRelayServerName;
    else
    relayServer = parameters.SMTPServerIPAddress;
    portNumber = parameters.SMTPPortNumber;
    userName = parameters.SMTPUserName;
    password = SysEmailParameters::password();
    subject = "Subject line for the email";
    body = "<B>Body of the email</B>";

    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("xx@xxxxxx");

    mailer.tos().appendAddress("xxxx@xxxx");
    mailer.subject(subject);
   // mailer.htmlBody(body);
    s = '<table border="1"> <tr> <td>Sl.No  </td> <td>Item number   </td> </tr>';
     htmlstring = strfmt(s);
    
     s = '<tr> <td>%1  </td><td>%2  </td></tr>';
     htmlstring += strfmt(s,1,'test12');
      htmlstring += strfmt( '</table>');
     mailer.htmlBody(htmlstring);
    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");
    }

}


Happy Daxing..

Comments

Popular posts from this blog

Using File path on a form getting Error in Axapta

Hi Folks, After a long time am coming  back to posting few new things here for AX Developer... When we want to select the file path in form level. Normally what we will do create one EDT and extends with filepath (EDT), but that time when you are trying to select the path we will get error like stack-trace/Error message .Don’t worry there is no problem with your ax application. Simple we need to provide the method to the form like filepathLookUpTitle (). Below method we need to add it into form level methods, i.e. str filePathLookupTitle() {     return "Select document folder"; } Thanks Happy Daxing....

Convert word Documents into PDF report [using X++ in Dynamics AX 2009]

Hi Friends, This is the way we can convert word format report into PDF in ax2009 static void dsiple_PDS(Args _args) {     Args args;     ReportRun rr;     str reportName = "ReportName";     PurchRFQLine rfqLineTable;     str myPath;     str pdfFileName;     int i;     COM wordApplication;     COM wordDocuments;     COM wordDocument;     COM wordRange;     str a[];     str path;     str pdfPath;     str finalPath;     int length;     int minus;     ;     i = 1;     myPath = winApi::getTempPath();     info(myPath);     args = new Args(reportName);     args.caller(rr);     //rr =...
 Note 2 ==== SE24 - Global class (Class and methods)  SE37 - function module - configure  SE38 - report  BAPI -  Function module  Object Type  Interface type  Form  - Flow  Form open - FP_Job_ open spool; function              LV_fm_name - cal function Job_close =============== ASN order confirmconfirmation  - VA03  FP_job_open VL02n - ASN  VF03  - Invoice document  VA02  - Sales order confirmation  Interface we cant debug - use Break-point from dev and activate then debug