• Sending Email by System.Net.Mail in AX


      We could easyly to write a method to send the mail by C#, in axapta we can use the System.Net.Mail to send mail as C#.

      1 void sendMail
      2 (
      3     str _Subject,
      4     str _MailTo,
      5     str _CCTo,
      6     str _Body,
      7     str _Attachment
      8 )
      9 {
     10     System.Net.Mail.MailAddress                 mailFrom;
     11     System.Net.Mail.MailMessage                 mailer;
     12     System.Net.Mail.MailAddressCollection       mailerConn;
     13     System.Net.Mail.AttachmentCollection        mailerAttachment;
     14     System.Net.Mail.SmtpClient                  smtpClient;
     15 
     16     System.Exception                            ex;
     17 
     18     List              m_MailTo, m_CCTo, m_Attachment;
     19     ListEnumerator    m_LE;
     20     str               m_MailAddress, m_MailerAttachment;
     21    InteropPermission interopPermission;
     22    ;
     23 
     24    interopPermission = new InteropPermission(InteropKind::ClrInterop);
     25    interopPermission.assert();
     26     mailFrom = new System.Net.Mail.MailAddress("*********", "**********");//Sender address; display name
     27     mailer   = new System.Net.Mail.MailMessage();
     28 
     29     mailer.set_From(mailFrom);
     30     mailer.set_Subject(_Subject);
     31     mailer.set_Body(_Body);
     32 
     33     //Set mail to
     34     mailerConn = mailer.get_To();
     35     m_MailTo   = Global::strSplit(_MailTo, ";");
     36     m_LE       = m_MailTo.getEnumerator();
     37     while (m_LE.moveNext())
     38     {
     39         m_MailAddress = m_LE.current();
     40         mailerConn.Add(m_MailAddress);
     41     }
     42 
     43     //Set CC to
     44     mailerConn = mailer.get_CC();
     45     m_CCTo     = Global::strSplit(_CCTo, ";");
     46     m_LE       = m_CCTo.getEnumerator();
     47     while (m_LE.moveNext())
     48     {
     49         m_MailAddress = m_LE.current();
     50         mailerConn.Add(m_MailAddress);
     51     }
     52 
     53     //Set attachment
     54     mailerAttachment = mailer.get_Attachments();
     55     m_Attachment     = Global::strSplit(_Attachment, ";");
     56     m_LE             = m_Attachment.getEnumerator();
     57     while (m_LE.moveNext())
     58     {
     59         m_MailerAttachment = m_LE.current();
     60         mailerAttachment.Add(new System.Net.Mail.Attachment(m_MailerAttachment));
     61     }
     62 
     63     //Set sender parameters
     64     mailer.set_BodyEncoding(System.Text.Encoding::get_UTF8());
     65     mailer.set_IsBodyHtml(true);
     66     mailer.set_Priority(System.Net.Mail.MailPriority::Normal);
     67     mailer.set_DeliveryNotificationOptions(System.Net.Mail.DeliveryNotificationOptions::OnSuccess);
     68 
     69     try
     70     {
     71         //Set mailer client
     72         smtpClient = new System.Net.Mail.SmtpClient();
     73         smtpClient.set_Host("************************");//Mail server
     74         smtpClient.set_UseDefaultCredentials(false);
     75         smtpClient.set_Credentials(new System.Net.NetworkCredential("*****", "***********"));//User name, pass word
     76         smtpClient.set_DeliveryMethod(System.Net.Mail.SmtpDeliveryMethod::Network);
     77 
     78         //Send mail
     79         smtpClient.Send(mailer);
     80     }
     81     catch (Exception::CLRError)
     82     {
     83         ex = CLRInterop::getLastException();
     84         info(ex.ToString());
     85     }
     86     catch (Exception::CodeAccessSecurity)
     87     {
     88         info("Code Access Security Error");
     89     }
     90     catch (Exception::Internal)
     91     {
     92         ex = CLRInterop::getLastException();
     93         if (ex)
     94             info(ex.ToString());
     95         else
     96             info("Internal Error");
     97     }
     98     catch (Exception::Error)
     99     {
    100         Error('Error exception!');
    101     }
    102     catch (Exception::Warning)
    103     {
    104         Warning("Warning exception!");
    105     }
    106 }

      

  • 相关阅读:
    22、栈的应用-中缀表达式转后缀表达式
    21、栈的应用-就近匹配
    20、双向链表
    19、链式栈
    Eclipse 重新加载插件
    Asp.net web form 使用IOC(Unity) 构造函数注入Page,.net Framework 4.7.2
    asp.net webform 多语言
    sql server 生成数字辅助表
    查询指定数据库的慢语句
    2008 sql 揭秘 第4章的数据库脚本
  • 原文地址:https://www.cnblogs.com/Jinnchu/p/3274134.html
Copyright © 2020-2023  润新知