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 }

  

原文地址:https://www.cnblogs.com/Jinnchu/p/3274134.html