使用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的,就可以了。

private void btnSend_Click(object sender, EventArgs e) {
    
try {
        
// SMTP服务器
        string     smtpHost             = "smtp.sohu.com";
        
// SMTP服务器端口
        int     smtpPort             = 25;
        
// 发送者邮件地址
        string     senderEmail         = txtEmail.Text;
        
// 发送者名字    
        string senderName           = txtName.Text;
        
// 接收者邮件地址
        string     recipientEmail        = "chengbo1983@gmail.com";
        
// 主题
        string     subject             = txtSubject.Text;
        
// 邮件内容
        string     body                 = txtMessage.Text;

        SmtpConfig.VerifyAddresses 
= false;
        EmailAddress from 
= new EmailAddress(senderEmail, senderName);
        EmailAddress to 
= new EmailAddress(recipientEmail);
        MailMessage msg 
= new MailMessage(from, to);
        
// 这行一定要填上,不然收到的中文邮件是一连串的???????
        msg.Charset = "gb2312";
        msg.Subject 
= subject;
        msg.Body 
= body;

        Smtp smtp 
= new Smtp(smtpHost, smtpPort);
        
// 在SMTP服务器上的用户名和密码
        smtp.Username = "chengbo1983";
        smtp.Password 
= "******";
        smtp.SendMail(msg);


        StringBuilder toList 
= new StringBuilder();
        
for (IEnumerator i = msg.To.GetEnumerator(); i.MoveNext();) {
            EmailAddress a 
= (EmailAddress)i.Current;
            toList.Append(a.Address 
+ ";");
        }


    }

    
catch(MalformedAddressException mfa) {
        
//异常处理
    }

    
catch(SmtpException se) {
        
//异常处理
    }

    
catch(Exception ex) {
        
//异常处理
    }

}
希望这篇文章能对大家有点帮助,演示http://chengbo.net/Contact.aspx
原文地址:https://www.cnblogs.com/chengbo/p/258348.html