下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → 用c#写的smtp邮件发送类__教程
用c#写的smtp邮件发送类__教程
日期:2007-5-20 1:21:25 人气:114     [ ]
上一页 [1] [2] [3] [4] [5] [6] 下一页
return response;
}
else
{
return null;
}
}
/// <summary>
/// 通过auth login方式登陆smtp服务器
/// </summary>
private void landingByLogin()
{
string base64UserId=this.convertBase64String(this.UserID,"ASCII");
string base64Pass=this.convertBase64String(this.Password,"ASCII");
//握手
this.sendCommand("helo "+this.serverName,false);
//开始登陆
this.sendCommand("auth login",false);
this.sendCommand(base64UserId,false);
this.sendCommand(base64Pass,false);
}
/// <summary>
/// 通过auth plain方式登陆服务器
/// </summary>
private void landingByPlain()
{
string NULL=((char)0).ToString();
string loginStr=NULL+this.UserID+NULL+this.Password;
string base64LoginStr=this.convertBase64String(loginStr,"ASCII");
//握手
this.sendCommand("helo "+this.serverName,false);
//登陆
this.sendCommand(base64LoginStr,false);
}
/// <summary>
/// 通过auth CRAM-MD5方式登陆
/// </summary>
private void landingByCRAMMD5()
{
//握手
this.sendCommand("helo "+this.serverName,false);
//登陆
string response=this.sendCommand("auth CRAM-MD5",false);
//得到服务器返回的标识
string identifier=response.Remove(0,4);
//用MD5加密标识
KSN_MACTripleDES mac=new KSN_MACTripleDES();
mac.Key=this.Password;
mac.Data=Encoding.ASCII.GetBytes(identifier);
string hash=mac.GetHashValue();
//发送用户帐号信息
this.sendCommand(this.UserID+" "+hash,false);
}
/// <summary>
/// 发送邮件
/// </summary>
/// <returns></returns>
public bool SendMail(MailMessage mail)
{
bool isSended=true;
try
{
//检测发送邮件的必要条件
if(mail.Sender==null)
{
this.setError("没有设置发信人");
}
if(mail.Receivers.Count==0)
{
this.setError("至少要有一个收件人");
}
if(this.SmtpValidateType!=SmtpValidateTypes.None)
{
if(this.userid==null || this.password==null)
{
this.setError("当前设置需要smtp验证,但是没有给出登陆帐号");
}
}
//开始登陆
switch(this.SmtpValidateType)
{
case SmtpValidateTypes.None:
this.sendCommand("helo "+this.serverName,false);
break;
case SmtpValidateTypes.Login:
this.landingByLogin();
break;
case SmtpValidateTypes.Plain:
this.landingByPlain();
break;
case SmtpValidateTypes.CRAMMD5:
this.landingByCRAMMD5();
break;
default:
break;
}
//初始化邮件会话(对应SMTP命令mail)
this.sendCommand("mail from:<"+mail.Sender+">",false);
//标识收件人(对应SMTP命令Rcpt)
foreach(string receive in mail.Receivers)
{
this.sendCommand("rcpt to:<"+receive+">",false);
}
//标识开始输入邮件内容(Data)
this.sendCommand("data",false);
//开始编写邮件内容
string message="Subject:"+mail.Subject+CRLF;
message+="X-mailer:"+mail.XMailer+CRLF;
message+="MIME-Version:1.0"+CRLF;
if(mail.Attachments.Count==0)//没有附件
{
if(mail.MailType==MailTypes.Text) //文本格式
{
message+="Content-Type:text/plain;"+CRLF+" ".PadRight(8,' ')+"charset=\""+
出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.