您的位置:首页 > 编程语言 > ASP

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

2015-11-11 16:21 656 查看
一直想写一个asp能用发送邮件的服务器组件,不过用VC太麻烦了,一直都没都手。

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

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

[c-sharp]
view plaincopyprint?

using System;
using System.Net.Mail;
using System.Text;

namespace IMELS

{
public class SendMail

{
public SendMail() { }

private string _to =
string.Empty;

/// <summary>

/// 收件人地址,多个用“,”号隔开

/// </summary>

public string To

{
set { _to = value; }

}

private string _from =
string.Empty;

/// <summary>

/// 发件人地址
/// </summary>

public string From

{
set { _from = value; }

}

private string _fromName =
string.Empty;

/// <summary>

/// 发件人显示名称
/// </summary>

public string FromName

{
set { _fromName = value; }

}

private string _cc =
string.Empty;

/// <summary>

/// 抄送,多个用“,”号隔开
/// </summary>

public string CC

{
set { _cc = value; }

}

private string _bcc =
string.Empty;

/// <summary>

/// 密抄,多个用“,”号隔开
/// </summary>

public string BCC

{
set { _bcc = value; }

}

private string _charset =
"GB2312";

/// <summary>

/// 邮件正文的编码
/// </summary>

public string Charset

{
set { _charset = value; }

}

private string _contentType =
"html";
/// <summary>
/// 邮件格式(html or txt)

/// </summary>
public string ContentType

{
set { _contentType = value; }

}

private string _subject =
string.Empty;
/// <summary>

/// 邮件标题
/// </summary>

public string Subject

{
set { _subject = value; }

}

private string _body =
string.Empty;
/// <summary>
/// 邮件内容

/// </summary>
public string Body

{
set { _body = value; }

}

private string _smtp;

/// <summary>

/// SMTP服务器地址
/// </summary>

public string Smtp

{
set { _smtp = value; }

}

private string _username;

/// <summary>
/// SMTP用户名

/// </summary>
public string Username

{
set { _username = value; }

}
/// <summary>

/// SMTP密码
/// </summary>

private string _password;

public string Password

{
set { _password = value; }

}

private int _port = 25;

/// <summary>
/// SMTP商品

/// </summary>
public int Port

{
set { _port = value; }

}

/// <summary>
/// 发送
/// </summary>
public void Send()

{
MailAddress from = new MailAddress(_from, _fromName);

MailMessage message = new MailMessage();

message.From = from;

string[] toadd = _to.Split(',');

foreach (string _add
in toadd)
{
try
{
message.To.Add(new MailAddress(_add));

}
catch(Exception e)

{
_error += "To Address Error : " + e.Message +
"(" + _add + ");";

}
}

if (_cc != string.Empty)

{

string[] ccadd = _cc.Split(',');

foreach (string _add
in ccadd)
{
try

{
message.CC.Add(new MailAddress(_add));

}
catch (Exception e)

{
_error += "CC Address Error : " + e.Message +
"(" + _add + ");";

}
}
}
if (_bcc !=
string.Empty)
{
string[] bccadd = _bcc.Split(',');

foreach (string _add
in bccadd)
{
try

{
message.Bcc.Add(new MailAddress(_add));

}
catch (Exception e)

{
_error += "BCC Address Error : " + e.Message +
"(" + _add + ");";

}
}
}

message.Sender = from;
message.Subject = _subject;
message.Body = _body;

if (_contentType ==
"html" || _contentType == string.Empty)

{
message.IsBodyHtml = true;

}
else
{
message.IsBodyHtml = false;

}

message.BodyEncoding = Encoding.GetEncoding(_charset);

message.DeliveryNotificationOptions = DeliveryNotificationOptions.None;

SmtpClient __smtp = new SmtpClient();

__smtp.Host = _smtp;
__smtp.Port = _port;
__smtp.UseDefaultCredentials = false;

__smtp.Credentials = new System.Net.NetworkCredential(_username, _password);

__smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

try

{
__smtp.Send(message);
}
catch (SmtpException e)

{
_error += "SMTP Error:" + e.Message +
";";
}

}

private string _error =
string.Empty;
/// <summary>

/// 返回错误信息
/// </summary>

public string Error

{
get { return _error; }

}
/// <summary>
/// 清空错误信息

/// </summary>
public void ClearErr()

{
_error = string.Empty;

}
}
}

[vb]
view plaincopyprint?

<%
dim send
set send = Server.CreateObject("IMELS.SendMail")

send.From = "test@163.com"

send.FromName = "无问"
send.Smtp = "smtp.163.com"

send.Username = "用户名"
send.Password = "密码"

send.Subject = "asp调用C#编写的DLL发送邮件测试标题"

send.ContentType = "html"

send.Charset = "gb2312"
send.Body = "asp调用C#编写的DLL发送邮件测试正文"

send.To = "to@163.com"

send.CC = "抄送地址"

send.BCC = "密抄地址"
send.Send()
Response.Write(send.Error)
%>

<%
dim send
set send = Server.CreateObject("IMELS.SendMail")

send.From = "test@163.com"
send.FromName = "无问"
send.Smtp = "smtp.163.com"
send.Username = "用户名"
send.Password = "密码"
send.Subject = "asp调用C#编写的DLL发送邮件测试标题"
send.ContentType = "html"
send.Charset = "gb2312"
send.Body = "asp调用C#编写的DLL发送邮件测试正文"
send.To = "to@163.com"
send.CC = "抄送地址"
send.BCC = "密抄地址"
send.Send()
Response.Write(send.Error)
%>


好了,大功告成!!

发现好多人都转载了本文章,请转载时加上原文的链接:/article/9249779.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: