国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

asp調(diào)用C#編寫的DLL發(fā)送郵件

2019-11-17 04:18:40
字體:
供稿:網(wǎng)友

一直想寫一個asp能用發(fā)送郵件的服務(wù)器組件,不過用VC太麻煩了,一直都沒都手。

 

前兩天看一篇文章,說是asp怎么調(diào)用C#寫的DLL,一試之下,果然可以,大喜,這下用來寫一個發(fā)送郵件的東東簡單了吧。

 

呵呵,非常簡單,一會就弄好了,不敢獨享,先看代碼:

 

  1. using System;   
  2. using System.Net.Mail;   
  3. using System.Text;   
  4.   
  5. namespace IMELS   
  6. {   
  7.     public class SendMail   
  8.     {   
  9.         public SendMail() { }   
  10.   
  11.         private string _to = string.Empty;   
  12.   
  13.         /// <summary>   
  14.         /// 收件人地址,多個用“,”號隔開   
  15.         /// </summary>   
  16.         public string To   
  17.         {   
  18.             set { _to = value; }   
  19.         }   
  20.   
  21.         private string _from = string.Empty;   
  22.   
  23.         /// <summary>   
  24.         /// 發(fā)件人地址   
  25.         /// </summary>   
  26.         public string From   
  27.         {   
  28.             set { _from = value; }   
  29.         }   
  30.   
  31.         private string _fromName = string.Empty;   
  32.   
  33.         /// <summary>   
  34.         /// 發(fā)件人顯示名稱   
  35.         /// </summary>   
  36.         public string FromName   
  37.         {   
  38.             set { _fromName = value; }   
  39.         }   
  40.   
  41.         private string _cc = string.Empty;   
  42.   
  43.         /// <summary>   
  44.         /// 抄送,多個用“,”號隔開   
  45.         /// </summary>   
  46.         public string CC   
  47.         {   
  48.             set { _cc = value; }   
  49.         }   
  50.   
  51.         private string _bcc = string.Empty;   
  52.   
  53.         /// <summary>   
  54.         /// 密抄,多個用“,”號隔開   
  55.         /// </summary>   
  56.         public string BCC   
  57.         {   
  58.             set { _bcc = value; }   
  59.         }   
  60.   
  61.         private string _charset = "GB2312";   
  62.   
  63.         /// <summary>   
  64.         /// 郵件正文的編碼   
  65.         /// </summary>   
  66.         public string Charset   
  67.         {   
  68.             set { _charset = value; }   
  69.         }   
  70.   
  71.         private string _contentType = "html";   
  72.         /// <summary>   
  73.         /// 郵件格式(html or txt)   
  74.         /// </summary>   
  75.         public string ContentType   
  76.         {   
  77.             set { _contentType = value; }   
  78.         }   
  79.   
  80.         private string _subject = string.Empty;   
  81.         /// <summary>   
  82.         /// 郵件標(biāo)題   
  83.         /// </summary>   
  84.         public string Subject   
  85.         {   
  86.             set { _subject = value; }   
  87.         }   
  88.   
  89.         private string _body = string.Empty;   
  90.         /// <summary>   
  91.         /// 郵件內(nèi)容   
  92.         /// </summary>   
  93.         public string Body   
  94.         {   
  95.             set { _body = value; }   
  96.         }   
  97.   
  98.         private string _smtp;   
  99.         /// <summary>   
  100.         /// SMTP服務(wù)器地址   
  101.         /// </summary>   
  102.         public string Smtp   
  103.         {   
  104.             set { _smtp = value; }   
  105.         }   
  106.   
  107.         private string _username;   
  108.         /// <summary>   
  109.         /// SMTP用戶名   
  110.         /// </summary>   
  111.         public string Username   
  112.         {   
  113.             set { _username = value; }   
  114.         }   
  115.         /// <summary>   
  116.         ///  SMTP密碼   
  117.         /// </summary>   
  118.         private string _passWord;   
  119.   
  120.         public string Password   
  121.         {   
  122.             set { _password = value; }   
  123.         }   
  124.   
  125.         private int _port = 25;   
  126.         /// <summary>   
  127.         /// SMTP商品   
  128.         /// </summary>   
  129.         public int Port   
  130.         {   
  131.             set { _port = value; }   
  132.         }   
  133.   
  134.         /// <summary>   
  135.         /// 發(fā)送   
  136.         /// </summary>   
  137.         public void Send()   
  138.         {   
  139.             MailAddress from = new MailAddress(_from, _fromName);   
  140.             MailMessage message = new MailMessage();   
  141.             message.From = from;   
  142.                
  143.             string[] toadd = _to.Split(',');   
  144.             foreach (string _add in toadd)   
  145.             {   
  146.                 try  
  147.                 {   
  148.                     message.To.Add(new MailAddress(_add));   
  149.                 }   
  150.                 catch(Exception e)   
  151.                 {   
  152.                     _error += "To Address Error : " + e.Message + "(" + _add + ");";   
  153.                 }   
  154.             }   
  155.   
  156.             if (_cc != string.Empty)   
  157.             {   
  158.   
  159.                 string[] ccadd = _cc.Split(',');   
  160.   
  161.                 foreach (string _add in ccadd)   
  162.                 {   
  163.                     try  
  164.                     {   
  165.                         message.CC.Add(new MailAddress(_add));   
  166.                     }   
  167.                     catch (Exception e)   
  168.                     {   
  169.                         _error += "CC Address Error : " + e.Message + "(" + _add + ");";   
  170.                     }   
  171.                 }   
  172.             }   
  173.             if (_bcc != string.Empty)   
  174.             {   
  175.                 string[] bccadd = _bcc.Split(',');   
  176.   
  177.                 foreach (string _add in bccadd)   
  178.                 {   
  179.                     try  
  180.                     {   
  181.                         message.Bcc.Add(new MailAddress(_add));   
  182.                     }   
  183.                     catch (Exception e)   
  184.                     {   
  185.                         _error += "BCC Address Error : " + e.Message + "(" + _add + ");";   
  186.                     }   
  187.                 }   
  188.             }   
  189.   
  190.             message.Sender = from;   
  191.             message.Subject = _subject;   
  192.             message.Body = _body;   
  193.   
  194.             if (_contentType == "html" || _contentType == string.Empty)   
  195.             {   
  196.                 message.IsBodyHtml = true;   
  197.             }   
  198.             else  
  199.             {   
  200.                 message.IsBodyHtml = false;   
  201.             }   
  202.   
  203.             message.BodyEncoding = Encoding.GetEncoding(_charset);   
  204.             message.DeliveryNotificationOptions = DeliveryNotificationOptions.None;   
  205.             SmtpClient __smtp = new SmtpClient();   
  206.             __smtp.Host = _smtp;   
  207.             __smtp.Port = _port;   
  208.             __smtp.UseDefaultCredentials = false;   
  209.             __smtp.Credentials = new System.Net.NetworkCredential(_username, _password);   
  210.             __smtp.DeliveryMethod = SmtpDeliveryMethod.Network;   
  211.             try  
  212.             {   
  213.                 __smtp.Send(message);   
  214.             }   
  215.             catch (SmtpException e)   
  216.             {   
  217.                 _error += "SMTP Error:" + e.Message + ";";   
  218.             }   
  219.                
  220.         }   
  221.   
  222.         private string _error = string.Empty;   
  223.         /// <summary>   
  224.         /// 返回錯誤信息   
  225.         /// </summary>   
  226.         public string Error   
  227.         {   
  228.             get { return _error; }   
  229.         }   
  230.         /// <summary>   
  231.         /// 清空錯誤信息   
  232.         /// </summary>   
  233.         public void ClearErr()   
  234.         {   
  235.             _error = string.Empty;   
  236.         }   
  237.     }   
  238. }  

 

說一下具體實現(xiàn)過程:

 

1、首先新建一個類庫項目;打開項目屬性頁,在“應(yīng)用程序”標(biāo)簽設(shè)置程序集名稱為“IMELS”(當(dāng)然,這個你可以設(shè)置為你喜歡的名字),輸出類型為類庫,如圖:

 

點擊“程序集信息”,勾選“使程序集COM可見”,如圖:

 

2、“簽名”標(biāo)簽,勾選“為程序簽名”,如圖:

 

然后“在選擇強名稱密鑰文件”下拉列表中選擇密鑰文件,如果沒有密鑰文件,就選擇“新建”,這里我選擇新建,如圖:

 

在“密鑰文件名稱”欄里輸入密鑰的名稱,你可以選擇為密鑰添加密碼保護它,我這里沒有使用密碼。

然后為項目添加一個類“SendMail ”,代碼就如上了。

 

3、代碼完成后,生成DLL文件,把DLL放到D:盤或別的什么盤,不過最好不要放在系統(tǒng)盤,然后就是注冊了,注冊C#寫的DLL是不能用regsvr32的,要用regasm,格式為:regasm /codebase d:/DLL/IMELS.dll。

 

這樣DLL的編寫和注冊都已完成了,下面就是應(yīng)用了,asp中調(diào)用方法如下:

 

  1. <%   
  2. dim send   
  3. set send = Server.CreateObject("IMELS.SendMail")   
  4.   
  5. send.From = "test@163.com"  
  6. send.FromName = "無問"  
  7. send.Smtp = "smtp.163.com"  
  8. send.Username = "用戶名"  
  9. send.Password = "密碼"  
  10. send.Subject = "asp調(diào)用C#編寫的DLL發(fā)送郵件測試標(biāo)題"  
  11. send.ContentType = "html"  
  12. send.Charset = "gb2312"  
  13. send.Body = "asp調(diào)用C#編寫的DLL發(fā)送郵件測試正文"  
  14. send.To = "to@163.com"  
  15. send.CC = "抄送地址"  
  16. send.BCC = "密抄地址"  
  17. send.Send()   
  18. Response.Write(send.Error)   
  19. %>  

 

好了,大功告成!!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 五指山市| 鄂伦春自治旗| 保定市| 肥东县| 百色市| 收藏| 金塔县| 随州市| 白城市| 固安县| 邯郸市| 梧州市| 廊坊市| 金山区| 炎陵县| 镇巴县| 谢通门县| 穆棱市| 日照市| 百色市| 浮梁县| 丰城市| 浦东新区| 榆社县| 隆林| 龙岩市| 额尔古纳市| 东乌珠穆沁旗| 广西| 嘉荫县| 绵阳市| 长白| 额济纳旗| 修文县| 聂拉木县| 游戏| 潼南县| 洛阳市| 高唐县| 辽阳市| 洛川县|