ASP网站如何实现邮件自动发送?
其实这个问题很容易解决。
但前提是你懂的asp。
访问者留下自己的邮箱。
你要做个邮箱的表单验证。
之后把他提交到数据库。
在这个时候也可以做个邮箱验证(也就是给他发送邮件。
)
你也可以把保存好的邮箱弄个后台管理统一发送邮件。
网上搜asp+Jmail
自己研究。
有不明白的地方补充。
ASP发送邮件
发邮件有三个常用的传送协议。
SMTP-简单邮件传输协议;POP3-邮局协议的第3个版本;信息访问协议的第4版本。
---------------在本地机上想发邮件,就需要安装SMTP服务器,如(local smtp Relay Server)。
然后使用Set mail = Server.CreateObject( "CDONTS.NewMail" )建议邮件关发送。
如何用asp发邮件
<%?
Set?jmail?=?Server.CreateObject("JMAIL.SMTPMail")?’创建一个JMAIL对象?
jmail.silent?=?true?’JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE?
jmail.logging?=?true?’启用使用日志?
jmail.Charset?=?"GB2312"?’邮件文字的代码为简体中文?
jmail.ContentType?=?"text/html"?’邮件的格式为HTML的?
jmail.ServerAddress?=?"Server?Address"?’发送邮件的服务器?
jmail.AddRecipient?Email?’邮件的收件人?
jmail.SenderName?=?"SenderName"?’邮件发送者的姓名?
jmail.Sender?=?"Email?Address"?’邮件发送者的邮件地址?
jmail.Priority?=?1?’邮件的紧急程序,1?为最快,5?为最慢,?3?为默认值?
jmail.Subject?=?"Mail?Subject"?’邮件的标题?
jmail.Body?=?"Mail?Body"?’邮件的内容?
jmail.AddRecipientBCC?Email?’密件收件人的地址?
jmail.AddRecipientCC?Email?’邮件抄送者的地址?
jmail.Execute()?’执行邮件发送?
jmail.Close?’关闭邮件对象?
%>?
w3?Jmail4.3组件重新设计了其内部结构——使用Message对象代替原来的单一对象Jmail.smtpmail发送邮件,有些方法需要身份验证的(如163、yahoo等),可以用下面的方法解决:?
<%?
Set?jmail?=?Server.CreateObject("JMAIL.Message")?’建立发送邮件的对象?
jmail.silent?=?true?’屏蔽例外错误,返回FALSE跟TRUE两值j?
mail.logging?=?true?’启用邮件日志?
jmail.Charset?=?"GB2312"?’邮件的文字编码为国标?
jmail.ContentType?=?"text/html"?’邮件的格式为HTML格式?
jmail.AddRecipient?Email?’邮件收件人的地址?
jmail.From?=?"Email?From?for?Sender"?’发件人的E-MAIL地址?
jmail.MailServerUserName?=?"UserName?of?Email"?’登录邮件服务器所需的用户名?
jmail.MailServerPassword?=?"Password?of?Email"?’登录邮件服务器所需的密码?
jmail.Subject?=?"Mail?Subject"?’邮件的标题?
jmail.Body?=?"Mail?Body"?’邮件的内容?
jmail.Prority?=?1?’邮件的紧急程序,1?为最快,5?为最慢,?3?为默认值?
jmail.Send("Server?Address")?’执行邮件发送(通过邮件服务器地址)?
jmail.Close()?’关闭对象?
%>?
再讲一下微软自带的CDONTS组件的发信的方法:?
<%?
Set?cdomail?=?Server.CreateObject("CDONTS.NewMail")?’建立邮件对象?
cdomail.Subject?=?"Mail?Subject"?’邮件标题?
cdomail.From?=?"Sender’s?Mail"?’发件人的地址?
cdomail.To?=?"Email?will?from"?’收件人的地址?
cdomail.Body?=?"Mail?Body"?’邮件的内容?
cdomail.Send?’执行发送?
%>?
这种方法发送邮件是最简单的,同时也带来一定的问题,就是很少有服务器会开这项服务!?
我们写程序,一般情况下都是说要代码模块化,这样方便维护,同时也方便移植。
因此,我在这里将这个发邮件的写成一个子程,在调用的时候可以直接调用(当然,如果你高兴写成函数的话也是可以的,这个主要是看个人兴趣):?
<%?
’参数说明?
’Subject?:?邮件标题?
’MailAddress?:?发件服务器的地址,如?
’Email?:?收件人邮件地址?
’Sender?:?发件人姓名?
’Content?:?邮件内容?
’Fromer?:?发件人的邮件地址?
Sub?SendAction(subject,?mailaddress,?email,?sender,?content,?fromer)?
Set?jmail?=?Server.CreateObject("JMAIL.SMTPMail")?’创建一个JMAIL对象?
jmail.silent?=?true?’JMAIL不会抛出例外错误,返回的值为FALSE跟TRUE?
jmail.logging?=?true?’启用使用日志?
jmail.Charset?=?"GB2312"?’邮件文字的代码为简体中文?
jmail.ContentType?=?"text/html"?’邮件的格式为HTML的?
jmail.ServerAddress?=?mailaddress?’发送邮件的服务器?
jmail.AddRecipient?Email?’邮件的收件人?
jmail.SenderName?=?sender?’邮件发送者的姓名?
jmail.Sender?=?fromer?’邮件发送者的邮件地址?
jmail.Priority?=?1?’邮件的紧急程序,1?为最快,5?为最慢,?3?为默认值?
jmail.Subject?=?subject?’邮件的标题?
jmail.Body?=?content?’邮件的内容?
’由于没有用到密抄跟抄送,这里屏蔽掉这两句,如果您有需要的话,可以在这里恢复?
’jmail.AddRecipientBCC?Email?’密件收件人的地址?
’jmail.AddRecipientCC?Email?’邮件抄送者的地址?
jmail.Execute()?’执行邮件发送?
jmail.Close?’关闭邮件对象?
End?Sub?
’调用此Sub的例子?
Dim?strSubject,strEmail,strMailAdress,strSender,strContent,strFromer?
strSubject?=?"这是一封用JMAIL发送的测试邮件"?
strContent?=?"JMail组件发送测试成功!"?
strEmail?=?"runbing@"?
strFromer?=?"runbing@"?
strMailAddress?=?""
strSender="我发的邮件"
SendAction(strSubject,strMailAddress,?strEmail,?strSender,?strContent,?strFromer)