青松阳光

关注于.NET技术
posts - 48, comments - 76, trackbacks - 17, articles - 34
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

从ASP.NET页面发送电子邮件

Posted on 2006-07-06 20:52 青松阳光 阅读(2956) 评论(13)  编辑 收藏 网摘 所属分类: ASP.NET
我们经常看到在一些博客页面里可以发表评论, 通过电子邮件通知版主(例如咱们的博客园),那么如何用asp.net发送电子邮件呢?我们可以借助.NET提供的强大的类库达到目的。

首先我们要引入 System.Web.Mail 命名空间。

然后创建一个MailMessage类的实例。见如下代码:


1'创建一个实例
2Dim objMM as New MailMessage()
3
4'设置其属性
5objMM.To = "someone@someaddress.com"
6objMM.From = "someoneelse@someotheraddress.com"
7objMM.Cc = "someone2@someaddress.com"
8objMM.Bcc = "someoneElse@someaddress.com"
9
10'以Text方式发送
11objMM.BodyFormat = MailFormat.Text
12'或者以Html方式发送
13objMM.BodyFormat = MailFormat.Html
14
15'设置邮件的优先级
16objMM.Priority = MailPriority.Normal
17
18'设置主题
19objMM.Subject = "Hello there!"
20'邮件正文
21objMM.Body = "Hi!" & vbCrLf & vbCrLf & "How are you doing?"
22

'最后使用 SmtpMail 类的静态方法Send发送

SmtpMail.Send(objMM)


有的邮件服务器在发送邮件时需要再次认证(一般是为了防治垃圾邮件的蔓延),例如163免费邮箱,那么如果是.net1.1以上的版本,可以加入:

objMM.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
objMM.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "your_username_here"); //set your username
objMM.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "your_password_here"); // set your password


在ASP.NET2.0中,MailMessage类已移到System.Net.Mail命名空间下,其发送email可参见:
http://aspnet.4guysfromrolla.com/articles/072606-1.aspx
http://aspnet.4guysfromrolla.com/articles/080206-1.aspx
Sending HTML Mail with Embedded Image in .NET


另外给大家介绍一个专门讨论System.Web.Mail的网站:
http://www.systemwebmail.com/default.aspx

如果是.NET2.0,可以访问有关讨论System.Net.Mail网址:

http://www.systemnetmail.com/


Feedback

#1楼   回复  引用    

2006-07-09 17:19 by agonger[未注册用户]
SmtpMail

#2楼   回复  引用    

2006-08-29 19:50 by ZHANGLING[未注册用户]
woaini

#3楼   回复  引用    

2006-09-30 17:29 by user[匿名][未注册用户]
you are man

#4楼   回复  引用    

2006-10-11 17:05 by 林汉平[未注册用户]
但是法

#5楼   回复  引用    

2006-10-16 14:15 by jiaoxiaoxing[未注册用户]
shishikan

#6楼   回复  引用    

2006-10-17 21:29 by j [匿名][未注册用户]
woi

#7楼   回复  引用    

2006-10-17 21:29 by j [匿名][未注册用户]
sadfsadf

#8楼   回复  引用    

2006-10-17 21:30 by j [匿名][未注册用户]
sadfsadfsadfsadfsdaf

#9楼   回复  引用    

2006-11-17 12:59 by aa[匿名][未注册用户]
a good reference really.

#10楼   回复  引用    

2007-01-11 16:07 by Robert[匿名][未注册用户]
objMM.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
objMM.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "your_username_here"); //set your username
objMM.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "your_password_here"); // set your password

这时的"用户名"和"密码"指的是?

能不能利用asp.net像Outlook那样设置一个电邮帐号和相关的SMTP邮件服务器地址,发信时先让asp.net把信件发至SMTP邮件服务器,再由SMTP邮件服务器把信件发至目的地呢?如果可以这样就可以完全解决asp.net发送的邮件不至于轻意被目的地的邮件服务器过滤掉了!

#11楼   回复  引用    

2007-01-22 14:50 by 青松&阳光[未注册用户]
用户名和密码只得是是你的管理员邮箱的配置, 因为服务器在发邮件时需要请求身份验证以防止是垃圾邮件的转发.

#12楼   回复  引用    

2007-02-27 21:09 by linyin[未注册用户]
我在填写发信验证码时,老是说验证错误?



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 444596




相关文章:

相关链接: