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

asp.net发送电子邮件

2009-08-21 16:40 411 查看
在网上看到可以用asp.net进行在线发送电子邮箱,于是就想试试,,这一试就发现了很多问题,
.net 也是频频报错,开始“邮箱不可用”,又是“未通过验证”“”…………,网上很多人都遇到了,就是没多少人讲一下,很多人的博客,空间都是直接copy过来的,一点改动都没有。在此BS一下。搜来搜去,也没找到好的方法,只好一点点看程序了。
我的是126邮箱,有网友说从06年后,网易就不对用户提供smtp服务了,所以就会报错“服务器不支持安全连接。”;没办法就注册了个gmail,
事情还不是很顺利,说未通过验证了,哦原来是System.Net.NetworkCredential nc = new System.Net.NetworkCredential("xieliliang", "密码");
这句话后边的参数是用户名和密码,这个很重要,不是那个电子邮箱的全名称,SmtpClient client = new SmtpClient("smtp.gmail.com");是提供smtp的服务器,还有一点就是client.EnableSsl = true;是否使用安全套接字加密连接设为TRUE。
至于为什么?因为Gmail要求把ssl加密打开(详细我也不知道,⊙﹏⊙b汗)。代码如下:
MailAddress from = new MailAddress("xieliliang@gmail.com");
MailAddress to = new MailAddress("xiell_2007@126.com");
MailMessage mse = new MailMessage(from, to);
mse.Subject = "test";
mse.IsBodyHtml = true;
mse.Body = "body";
//上传附件
if (this.FileUpload1.PostedFile.FileName != "")
{
Attachment att = new Attachment(filename);
mse.Attachments.Add();
}
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.UseDefaultCredentials = true;
System.Net.NetworkCredential nc = new System.Net.NetworkCredential("xieliliang", "密码");
client.Credentials = nc;
//下面这句很重要
client.EnableSsl = true;
client.Send(mse);
Response.Write("发送成功!");
主要来介绍MailAddress对象的属性(注意在Vs2005中,不是MailMessage(已过时)是MailAddress)
From -- 发送邮件的地址
To -- 接受邮件的地址
Subject -- 邮件的标题
Priority -- 邮件的优先级(有效值为High,Low,Normal)
Attachments -- 返回一个集合,代表附件
Bcc -- 密送地址
Cc -- 抄送地址
Body -- 获取或是设置电子邮件消息的内容
BodyFormat -- 获取或是设置MailFormat的枚举值,此值指定消息体邮件的格式(Html格式、Text格式)
Bodyencoding -- 指定消息的编码方式编码(主要有Base64,UUencode)
这样的代码的功能就是管理员他首先要注册一个支持smtp服务的电子邮箱,如gmail,sina,就可以给注册的用户发送邮件了,这样就很简单便利,不需要再登陆到邮箱的官方网站去进行发送邮件了,不过给QQ邮箱用户发的话,就被认为是垃圾邮件。但如果用户使用的电子邮箱不是支持smtp服务的话,如126,163这个功能将失效。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: