.net发送邮件代码

  前段时间,公司做项目时,要求实现发送邮件的功能,到网上一搜,虽然有很多这方面的资料,但是总是报这错报那错的!

1,由于我使用的.net自带的发送邮箱的方法,所以必须先导入using System.Net.Mail命名空间

2,发送邮件的主要代码如下:

MailMessage mailObj = new MailMessage();
mailObj.From 
= new MailAddress("hengyangxieyue@sina.com"); //发送人邮箱地址
mailObj.To.Add("zyg853771@sina.com");   //收件人邮箱地址
mailObj.Subject = "11111111";    //主题
mailObj.Body = "222222";    //正文
SmtpClient smtp = new SmtpClient();
smtp.Host 
= "smtp.sina.com";         //smtp服务器名称
smtp.UseDefaultCredentials = true;
smtp.Credentials 
= new NetworkCredential("发送人邮箱登录名""发送人邮箱密码");  //发送人的登录名和密码
smtp.Send(mailObj);

 

 以上代码在网上都可以找得到的,但是你把以上代码加入到你的程序中(当然改修改的还是修改了的情况下),往往会报异常,导致邮件发送不成功!我的程序中就出现过“smtp服务器要求安全连接或客户端未通过身份验证..”异常信息,如果报这种错误的话,一般是发送人邮箱的stmp协议未启用,怎样开启,就以我的新浪邮箱为例,如图:

1,登陆发送人的邮箱,点击邮箱设置,选择帐户选项卡

 

2,在帐户选项卡,移动最下面就可以看到SmTP设置,把开启的复选框勾上就可以了

 

    好了!到了这儿,发送邮件没什么问题了,但是我在项目中,一下子要给7,8个人一起发邮件,然后发送邮件的速度就很慢了,请问各位高手,怎样解决这个问题?

posted @ 2009-04-04 12:38 破碎的梦 阅读(792) 评论(8) 编辑 收藏

 回复 引用 查看   
#1楼2009-04-04 12:46 | 小橋流水      
mailObj.To.Add("zyg853771@sina.com"); 这句可以多次调用嘛。比如你要发信给a和b,你可以
mailObj.To.Add(a);
mailObj.To.Add(b);
这样发出去和发给一个人的速度是一样的,不一样的是sina的服务器要发给2个人,不过那不是咱管得了的。

 回复 引用 查看   
#2楼[楼主]2009-04-04 14:07 | 破碎的梦      
@小橋流水
谢谢指点,还望高手多来我这园子多来看看!

 回复 引用 查看   
#3楼2009-04-05 00:26 | 爱.辉.舞      
试试用jmail
 回复 引用 查看   
#4楼[楼主]2009-04-06 21:36 | 破碎的梦      
@爱.辉.舞
jmail好是好用,就是部署的时候,太麻烦了!

 回复 引用 查看   
#5楼2009-04-23 20:04 | 韩玉宝      
你好,我使用了上面代码,命名空间
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
但是有一段不正确
smtp.Credentials = new NetworkCredential这个提示找不到命名空间,能给解释一下吗?
谢谢!

 回复 引用 查看   
#6楼[楼主]2009-04-23 23:48 | 破碎的梦      
@韩玉宝
你用的是vs2008吧?少引用了一个命名空间,using System.Net;因为这个类是在这个NetworkCredential命名空间下。欢迎下次光临!

 回复 引用 查看   
#7楼2009-04-25 18:36 | 韩玉宝      
谢谢你,解决了上面的问题.我现在想做一个窗体程序,收发邮件用,支持附件的那种. by the way 我经常来你博客听音乐,呵呵!
 回复 引用 查看   
#8楼2009-09-23 14:32 | 寂静的夜      
谢谢你,解决了正疑惑的问题