asp调用C#编写的DLL发送邮件

一直想写一个asp能用发送邮件的服务器组件,不过用VC太麻烦了,一直都没都手。

前两天看一篇文章,说是asp怎么调用C#写的DLL,一试之下,果然可以,大喜,这下用来写一个发送邮件的东东简单了吧。

呵呵,非常简单,一会就弄好了,不敢独享,先看代码:

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         /// 发件人地址
25         /// </summary>
26         public string From  
27         {
28             set { _from = value; }
29         }
30
31         private string _fromName = string.Empty;
32
33         /// <summary>
34         /// 发件人显示名称
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         /// 邮件标题
83         /// </summary>
84         public string Subject
85         {
86             set { _subject = value; }
87         }
88
89         private string _body = string.Empty;
90         /// <summary>
91         /// 邮件内容
92         /// </summary>
93         public string Body
94         {
95             set { _body = value; }
96         }
97
98         private string _smtp;
99         /// <summary>
100         /// SMTP服务器地址
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         /// 发送
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 }
239

时间: 2024-08-16 15:21:42

asp调用C#编写的DLL发送邮件的相关文章

c++-用vb.net(或C#)调用C++编写的DLL时遇到的问题

问题描述 用vb.net(或C#)调用C++编写的DLL时遇到的问题 这部分是在c++中可以正常工作的部分,其声明如下: extern "C" int LHD_Main(unsigned char *pImage, RECT *rcRoi,int w, int h, char *PlateCharacters, RECT *rectPlateLocation, int *PlateReliability, int nMod); 调用如下 //加载图片 IplImage *image =

c#调用c++编写的dll总是出现问题,哪位高手帮帮忙

问题描述 我的这个程序,使用c#调用c++编写的dll,总是出现以下这个问题,那位高手能够帮帮忙,小女子在此先感谢了.大家就救我吧.c++编写的dll中的函数voidEFSgetUsrThesaurus(pUsrDicFileNameTableDicFlNmTbl,pUsrKeyWordTableKeyWdTbl,pUsrThesaurusTableThTbl,EFSDICSTATUS*EFS_dicstatus);c++中的结构体typedefstruct{intCnt;struct{char

C#调用C++编写的dll里面的导出类

问题描述 C#调用C++编写的dll里面的导出类,dll里面的一个类都是虚函数,怎么破,求抱大腿~~~~~~ 解决方案 解决方案二:C++和C#虚函数是一样的道理

c#调用delphi编写的dll文件报错,尝试读取或写入受保护的内存

问题描述 c#调用delphi编写的dll文件报错,尝试读取或写入受保护的内存 delphi函数原型 Procedure invoke(params :PChar; result : PChar) ; 解决方案 把这个delphi的原型改一下,改为 Function Pchar invoke(params :PChar) ; 再试试 解决方案二: Function invoke(params: PAnsiChar): PAnsiChar ;

.Net(C#) 调用Delphi 编写的DLL

问题描述 我通过动态加载动态库的方式调用Delphi编写的DLL的一个方法,执行时没问题,但是在调试时会出错:尝试在非托管DLL中执行托管代码步骤如下:通过WindowsAPI加载Delphi编写的DLL取得方法的指针将取得的方法转换为一个方法原型相同的委托实例A.(原型为:delegatevoidFuncation())A.Invoke();调试时就是这一步出错:尝试在非托管DLL中执行托管代码谁可以告诉我这个是什么原因? 解决方案 解决方案二:[DllImport("Delphidllnam

vb调用c++dll-VB调用C++编写的DLL,无报错但是自动弹出

问题描述 VB调用C++编写的DLL,无报错但是自动弹出 小弟编写了一个C++的DLL,其头文件nihe.h如下: #include "stdafx.h" #define EXPORT _declspec(dllexport) extern "C" EXPORT void matching(double dGPSData[],unsigned int GPSCounts32,double dPlaneData[],unsigned int u32PlaneCount

asp调用vb生成的dll文件,执行shell异步变同步的解决方法(带源代码)

vb|解决|源代码|执行|shell|异步|同步 阿里西西web开发团队在开发一个asp系统,需要同步调用vb(dll)执行的shell操作,asp->vb(dll)->shell->rar.exe同步执行exe文件. 由于shell是异步处理,这个问题让我们头疼了很久,最终还是通过百度找到了几个不错的函数,调试过,效果还不错,建议可以先用vb建exe来调试好了,再放入DLL编译给ASP调用. 代码如下: 以下是用vb制作一个exe文件进行调试,打开记事本和计算器示例:Private T

oracle 存储过程 调用 自己编写的DLL文件

问题描述 我现在有个需求,需要用oracle的存储过程调用 自己编写好的DLL文件,请问各位大神有什么好的方法吗?DLL文件编写语言有要求吗(本人目前想用C#)?ORACLE方面要如何定义和执行编译好的DLL文件中的方法呢?请帮忙详细述说下! 解决方案 建议你不要这么去调用,方在存储过程可扩展性,可移植性都较差,你可以将你存储过程封装成服务再去做逻辑编排

调用别人编写的dll实时的接收图像流,用MFC可以实现,能否在.NET网页中实现。

问题描述 具体动态库的函数原型如下,void(WINAPIPlayRealVideo)(char*ip,longhdc,RECTwhere);ip:指定要播放的终端IP地址(摄影机的Ip)hdc:指定要播放的句柄where:指定在什么位置播放structRECT{Intleft,top,bottom,right;}我本来是在本地用MFC实现调用可以实现,实现了对应IP传输过来的图片流在某一句柄对应的某一区域的视频的实时播放,对于.Net,本人不是很熟悉正在学习中,现在想把别人提供的dll在.Ne