使用OpenSMTP.NET在线发送邮件

决定写写博客了,毕竟有太久时间没更新这东西,最近太忙,忙着怎么玩的开心,玩的潇洒,直到最近几天才恢复正常,写了几天的程序,又有心得了,写上来。

想在自己的主页上做一个在线发送邮件的东东,具体有MS自带的System.Web.Mail和一个使用比较广泛的Jmail。听说MS自带的不太好用,我就试着捣鼓了一下Jmail,后来也没搞定,算了,有点麻烦,另外找吧。一阵忙乎,发现了OpenSMTP.NET这个开源的组件,http://sourceforge.net/projects/opensmtp-net/,用C#开发的,相关的还有OpenPOP.NET。就用它吧,按照下面的代码,我成功了。之间有个小麻烦,我最先用的smtpHost是smtp.163.com,但是这样的话,发送者在页面上填的自己的email必须是163.com的,不然就会发送失败,又试了21cn的,也是这样,最后找到sohu的,就可以了。

ExpandedBlockStart.gif ContractedBlock.gif private   void  btnSend_Click( object  sender, EventArgs e)  dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif    
try dot.gif{
InBlock.gif        
// SMTP服务器
InBlock.gif
        string     smtpHost             = "smtp.sohu.com";
InBlock.gif        
// SMTP服务器端口
InBlock.gif
        int     smtpPort             = 25;
InBlock.gif        
// 发送者邮件地址
InBlock.gif
        string     senderEmail         = txtEmail.Text;
InBlock.gif        
// 发送者名字    
InBlock.gif
        string senderName           = txtName.Text;
InBlock.gif        
// 接收者邮件地址
InBlock.gif
        string     recipientEmail        = "chengbo1983@gmail.com";
InBlock.gif        
// 主题
InBlock.gif
        string     subject             = txtSubject.Text;
InBlock.gif        
// 邮件内容
InBlock.gif
        string     body                 = txtMessage.Text;
InBlock.gif
InBlock.gif        SmtpConfig.VerifyAddresses 
= false;
InBlock.gif        EmailAddress from 
= new EmailAddress(senderEmail, senderName);
InBlock.gif        EmailAddress to 
= new EmailAddress(recipientEmail);
InBlock.gif        MailMessage msg 
= new MailMessage(from, to);
InBlock.gif        
// 这行一定要填上,不然收到的中文邮件是一连串的???????
InBlock.gif
        msg.Charset = "gb2312";
InBlock.gif        msg.Subject 
= subject;
InBlock.gif        msg.Body 
= body;
InBlock.gif
InBlock.gif        Smtp smtp 
= new Smtp(smtpHost, smtpPort);
InBlock.gif        
// 在SMTP服务器上的用户名和密码
InBlock.gif
        smtp.Username = "chengbo1983";
InBlock.gif        smtp.Password 
= "******";
InBlock.gif        smtp.SendMail(msg);
InBlock.gif
InBlock.gif
InBlock.gif        StringBuilder toList 
= new StringBuilder();
ExpandedSubBlockStart.gifContractedSubBlock.gif        
for (IEnumerator i = msg.To.GetEnumerator(); i.MoveNext();) dot.gif{
InBlock.gif            EmailAddress a 
= (EmailAddress)i.Current;
InBlock.gif            toList.Append(a.Address 
+ ";");
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockEnd.gif    }

ExpandedSubBlockStart.gifContractedSubBlock.gif    
catch(MalformedAddressException mfa) dot.gif{
InBlock.gif        
//异常处理
ExpandedSubBlockEnd.gif
    }

ExpandedSubBlockStart.gifContractedSubBlock.gif    
catch(SmtpException se) dot.gif{
InBlock.gif        
//异常处理
ExpandedSubBlockEnd.gif
    }

ExpandedSubBlockStart.gifContractedSubBlock.gif    
catch(Exception ex) dot.gif{
InBlock.gif        
//异常处理
ExpandedSubBlockEnd.gif
    }

ExpandedBlockEnd.gif}
希望这篇文章能对大家有点帮助,演示 http://chengbo.net/Contact.aspx

转载于:https://www.cnblogs.com/chengbo/archive/2005/10/20/258348.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值