Skip to main content

Send Email for port 465 or 587 using Axapta

 public void email(filename ReportPath)

{

    System.Net.Mail.MailMessage             mailMessage;

    System.Net.Mail.SmtpClient              myMail;

    System.Net.Mail.MailAddressCollection   mailcoll;

    System.Net.Mail.MailAddress             mailFrom;

    System.Net.Mail.MailAddress             mailTo;

    System.Net.Mail.Attachment              attachment;

    System.Net.Mail.AttachmentCollection    attachementCollection;


    str                                     ToEmail;

    str                                     mailBody;

    str                                     smtpServer;

    str                                     mailSubject;

    int                                     SMTPPort;



    #File

    str                 mail;

    userinfo            userInfo;

    str pwd;

    SysEmailParameters parameters = SysEmailParameters::find();

    ;

    new InteropPermission(InteropKind::ClrInterop).assert();


    ToEmail = HcmWorker.email();


    if(ToEmail != "") // check if email id exists for employee then send a mail

    {


            mailSubject         = "Pay slip for "+ mthName(Monthname) +"-"+int2str(YearName);

            mailFrom            = new  System.Net.Mail.MailAddress(parameters.SMTPUserName ,"DAX Info");

            mailTo              = new  System.Net.Mail.MailAddress(ToEmail);

            mailcoll            = new  System.Net.Mail.MailAddressCollection();

            mailBody            = "Hello "+HcmWorker.name()+", Kindly Find the attachment salary slip"; // Body Should be in HTML Format;



            try

            {

            smtpServer          = SysEmaiLParameters::find(false).SMTPRelayServerName;// using the SMTP server ip //setup in email Parameters

            mailMessage         = new System.Net.Mail.MailMessage(mailFrom,mailTo);

            mailmessage.set_Subject(mailSubject);

            mailmessage.set_Body(mailBody);


            attachementCollection = mailMessage.get_Attachments();

            attachment = new System.Net.Mail.Attachment(ReportPath);

            attachementCollection.Add(attachment);



            SMTPPort            = SysEmaiLParameters::find(false).SMTPPortNumber;

            myMail              = new System.Net.Mail.SmtpClient(smtpServer, SMTPPort);


            myMail.set_EnableSsl(true); // For SSL enabled mail servers. Ex: gmail, smtp.gmail.com, port 465 or 587


            pwd = SysEmaiLParameters::password();


            mymail.set_Credentials(New System.Net.NetworkCredential(parameters.SMTPUserName, pwd));


            mymail.Send(mailmessage);

            }

            catch(Exception::CLRError)

            {

               throw Exception::CLRError;

            }


            mailMessage.Dispose();

            CodeAccessPermission::revertAssert();

    }

}

Popular posts from this blog

sales order Totals option getting error in Axapta

Problem: On  click sales order Totals option getting below error. Please help me how to solve it. Microsoft.Dynamics.Ax.Xpp.ClrErrorException: Exception of type 'Microsoft.Dynamics.Ax.Xpp.ClrErrorException' was thrown. at Microsoft.Dynamics.Ax.Xpp.CLRInterop.MakeReflectionCall(Object instance, String methodName, Object[] parameters) at Dynamics.Ax.Application.TaxDocumentProxy.Sumbytaxaccountingprovider(TaxAccountingProvider taxAccountingProvider, TaxAcctPostingProfDistributionSide postingSide, String taxType, String taxComponent, Boolean , Boolean , Boolean ) in TaxDocumentProxy.sumByTaxAccountingProvider.xpp:line 15 at Dynamics.Ax.Application.TaxDocumentProxy.@Sumbytaxaccountingprovider(TaxAccountingProvider taxAccountingProvider, TaxAcctPostingProfDistributionSide postingSide, String _taxType, Boolean , Boolean ) at Dynamics.Ax.Application.TaxDocumentProxy.@Sumbytaxaccountingprovider(TaxAccountingProvider taxAccountingProvider, TaxAcctPostingProfDistributionSide postingSide, ...

X++ Code to run SSRS Report with parameter in D365 F&O (Example Sales Invoice )

Below is sample X++ Code to run SSRS Report with parameter in D365 F&O (Example Sales Invoice )      Args                       args = new Args();     CustInvoiceJour            custInvoiceJour;     SalesInvoiceJournalPrint   salesInvoiceJournalPrint;       select firstonly custInvoiceJour where custInvoiceJour.SalesId != '';       // Add record to be printed.     // In order to have the context table we need to set args.record().     args.record(custInvoiceJour);       salesInvoiceController = new SalesInvoiceController();     salesInvoiceController.parmReportName(         PrintMgmtDocType::construct(PrintMgmtDocumentType::SalesOrderInvoice).getDefaultReportFormat());       salesInvoiceContract = salesInvoiceController.parmReportContrac...