mail etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
mail etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

30 Ocak 2019 Çarşamba

AX - 2012 Satınalma sipariş raporunu direk email olarak göndermek

Satınlama sipariş raporunu (PurchPurchaseOrder) direk mail olarak göndermek:

    SrsReportRunController          controller = new SrsReportRunController();
    PurchPurchaseOrderContract      Contract = new PurchPurchaseOrderContract();
    SRSPrintDestinationSettings     printSettings;
    VendPurchOrderJour              orderJour;
    SrsReportEMailDataContract      emailContract = new SrsReportEMailDataContract();

   select firstonly orderJour
            order by PurchOrderDate Desc,CreatedDateTime Desc
            where orderJour.PurchId == "ST000181";

    emailContract.parmAttachmentFileFormat(SRSReportFileFormat::PDF);
    emailContract.parmSubject("Purchase Order");
    emailContract.parmTo("test@hotmail.com");
    
    
    controller.parmReportName(ssrsReportStr(PurchPurchaseOrder, Report));
    controller.parmShowDialog(false);
    Contract.parmRecordId(orderJour.RecId);
    controller.parmReportContract().parmRdpContract(Contract);

    printSettings = controller.parmReportContract().parmPrintSettings();
    printSettings.printMediumType(SRSPrintMediumType::Email);
    printSettings.fileFormat(SRSReportFileFormat::PDF);
    printSettings.parmEMailContract(emailContract);
    printSettings.overwriteFile(true);

    controller.runReport();


Yukarıdaki yöntemde sistem AX mail göndericisi yerine Outlook'u kullanmak isteyecektir. Aşağıdaki yöntem alternatif olabilir. Yukarıdaki yöntemin dezavantajı Outlook'u kullanması iken aşağıdakinin de dezavantajı dosyayı öncelikle diskte bir yere yazmanızın gerekmesi:


  PurchTable          purchTable;
    str                 body;
    PurchLine           purchLine;
    boolean             found;
    VendPurchOrderJour  orderJour;
    Filename            filename;
    SysMailer           mailer;
    SysEmailParameters  parameters;
      SrsReportRunController  controller = new SrsReportRunController();
    PurchPurchaseOrderContract  contract = new PurchPurchaseOrderContract();
 SRSPrintDestinationSettings printSettings;   
    
    controller.parmReportName(ssrsReportStr(PurchPurchaseOrder,Report));
    controller.parmExecutionMode(SysOperationExecutionMode::Synchronous);
printSettings = controller.parmReportContract().parmPrintSettings();
printSettings.fileFormat(SRSReportFileFormat::PDF);
printSettings.printMediumType(SRSPrintMediumType::File);
printSettings.overwriteFile(true);

printSettings.fileName(@filename);
filename = strFmt(@"%1%2.PDF",WinAPI::getTempPath(),"PO00001");

     select firstonly orderJour
            order by PurchOrderDate Desc,CreatedDateTime Desc
            where orderJour.PurchId == "PO00001"
    contract.parmRecordId(orderJour.RecId);
    controller.parmReportContract().parmRdpContract(contract);
    
    controller.parmShowDialog(false);
    controller.runReport();
    infolog.clear();
    
    new InteropPermission(InteropKind::ComInterop).assert();
    mailer = new SysMailer();
    parameters = SysEmailParameters::find();


    if (parameters.SMTPRelayServerName)
    {
        mailer.SMTPRelayServer(parameters.SMTPRelayServerName,
                            parameters.SMTPPortNumber,
                            parameters.SMTPUserName,
                            SysEmailParameters::password(),
                            parameters.NTLM);
    }
    else
    {
        mailer.SMTPRelayServer(parameters.SMTPServerIPAddress,
                            parameters.SMTPPortNumber,
                            parameters.SMTPUserName,
                            SysEmailParameters::password(),
                            parameters.NTLM);
    }
    body = '<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-9">';    
    body += strFmt(@"<br><caption>%1</caption><br><br>","Satınalma sipariş formunuz ektedir.");      
    
    mailer.fromAddress("sender@hotmail.com");
    mailer.tos().appendAddress("test@hotmail.com");
    mailer.htmlBody(body);
    mailer.subject(title);
    mailer.attachments().add(filename);
    mailer.bodyCharSet("Windows-1254");
    mailer.sendMail();

24 Mart 2016 Perşembe

AXAPTA - Sysmailer ile mail gönderirken türkçe harf sorunu

SysMailer class ile mail gönderirken aşağıdaki kırmızı satırı eklemediğinizde türkçe harfler mailde çıkmayacaktır. Bu çözümü bir blog'dan bulmuştum ancak yerini şu an hatırlayamıyorum:


   SysEmailParameters  parameters;
    SysMailer           mailer;
    ;
    new InteropPermission(InteropKind::ComInterop).assert();
        parameters = SysEmailParameters::find();

        mailer = new SysMailer();
        if (parameters.SMTPRelayServerName)
        {
            mailer.SMTPRelayServer(parameters.SMTPRelayServerName,
                               parameters.SMTPPortNumber,
                               parameters.SMTPUserName,
                               SysEmailParameters::password(),
                               parameters.NTLM);
        }
        else
        {
            mailer.SMTPRelayServer(parameters.SMTPServerIPAddress,
                               parameters.SMTPPortNumber,
                               parameters.SMTPUserName,
                               SysEmailParameters::password(),
                               parameters.NTLM);
        }
        mailer.fromAddress(fromAddr);
        mailer.tos().appendAddress(toAddr);
        mailer.subject(subject);
        //türkçe harflerin düzgün gitmesi için:
        mailer.bodyCharSet("Windows-1254");
        if(FileName)
            mailer.attachments().add(FileName);
        mailer.ccs().appendAddress(ccAddr);
        mailer.bccs().appendAddress(bccAddr);
        mailer.htmlBody(body);
        mailer.sendMail();
    }
    CodeAccessPermission::revertAssert();

6 Ocak 2014 Pazartesi

AXAPTA - Email gönderme

private void SendMail2(str _FileName,Str60 _Subject,Notes _Body)
{

   str Toaddress;
   System.Net.Mail.MailMessage Msg =  new System.Net.Mail.MailMessage();
   System.Net.Mail.MailAddress fromMail;
   System.Net.Mail.MailAddressCollection toadrr;
   System.Net.Mail.SmtpClient smCL = new System.Net.Mail.SmtpClient();
   System.Net.NetworkCredential credential;
   str          bodygrd,sSmtpServer;
   CLRObject   exc;
   CLRObject   innerExc;
   CLRObject   clrExcMessage;
   str         strError;
   SysEmailParameters EmailParm;
   str pass;
   System.Net.Mail.AttachmentCollection  mailAttachementCollection;
   System.Net.Mail.Attachment            mailAttachment;
;

toaddress="test@hotmail.com";


    EmailParm = SysEmailParameters::find();
    pass = SysEmailParameters::password();
    credential = new System.Net.NetworkCredential(EmailParm.SMTPUserName,pass);
    fromMail = new System.Net.Mail.MailAddress(EmailParm.SMTPUserName);
    new InteropPermission(InteropKind::ClrInterop).assert();
  try
  {
    Msg.set_From(fromMail);
    toadrr = Msg.get_To();
    toadrr.Add(new System.Net.Mail.MailAddress(toaddress));
    Msg.set_Subject(_Subject);
    Msg.set_Body(_body);
    Msg.set_IsBodyHtml(true);
    sSmtpServer =  EmailParm.SMTPRelayServerName;
    smCL.set_Host(sSmtpServer);
    mailAttachementCollection = msg.get_Attachments();
        mailAttachment = new System.Net.Mail.Attachment(_fileName);
        mailAttachementCollection.Add(mailAttachment);
    smCL.set_Port(EmailParm.SMTPPortNumber);
    smCL.set_EnableSsl(true);
    smCL.set_Credentials(credential);
    smCL.Send(Msg);
  }     catch( Exception::CLRError )
                   {
                        exc = CLRInterop::getLastException();
                        if( exc )
                        {
                           clrExcMessage = exc.get_Message();
                           innerExc = exc.get_InnerException();
                           while(innerExc != null)
                           {
                              clrExcMessage = innerExc.get_Message();
                              innerExc = innerExc.get_InnerException();
                           }
                           strError = CLRInterop::getAnyTypeForObject( clrExcMessage );
                           throw error(strError);
                        }
                   }
}