这段时间看到有太多的人迷茫于邮件的群发。
所以把自己以前写的一个东东拿出来与大家分享。希望大家能够举一反三。
关键是如果构建一个自身调用的方法,还有在大数据量的情况下,使用数组来代替记录集。
自身的调用可以有很多的应用。除了邮件的群发,还有譬如自身的递归。很多人想实现取得不重复随机数就可以使用下面得思路。
当然,实现总不是一种,而是多样化得,你还可以有更好得方法。希望能够和大家切磋!
这个页面叫做email_sendall.asp
<%on error resume next%>
<!--这里是你们的包含文件-->
<%
if request("Page")="" then
CPage=1
else
Cpage=request("Page")
end if
'接受邮件内容,当然,也可以从数据库种查询
comment=request("comment")
'定义邮件数组
Dim emailArray
sql_email="SELECT useremail,userregname,userpassword FROM email"
Set Recordsetemail=Server.CreateObject("ADODB.Recordset")
Recordsetemail.ActiveConnection=cnn
Recordsetemail.Source=sql_email
Recordsetemail.CursorType=3
Recordsetemail.CursorLocation=2
Recordsetemail.LockType=1
Recordsetemail.Pagesize=5
Recordsetemail.Open()
Recordsetemail.AbsolutePage=CPage
Page_Count=Recordsetemail.PageCount
'把数据库中的读取到数组中。
emailArray=Recordsetemail.Getrows(5,0)
Recordsetemail.close
if err.number<>0 then
JMail.Close
response.write "邮件群发成功!"
response.end
else
end if
set Recordsetemail=nothing
if isarray(emailArray) then
Repeat1__index=0
dim U_emailArray
U_emailArray=ubound(emailArray,2)
While(Repeat1__index<=U_emailArray)
comment1=replace(comment,"</user>",emailarray(1,Repeat1__index))
comment1=replace(comment1,"</password>",emailarray(2,Repeat1__index))
Set JMail=Server.CreateObject("JMail.SMTPMail")
JMail.ContentType="text/html"
JMail.Encoding = "base64"
JMail.Charset="gb2312"
jmail.Sender=request("fromwho")
JMail.Subject = request("subject")
JMail.AddRecipient(emailarray(0,Repeat1__index))
JMail.Body =comment1
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute
JMail.Close
response.Write(request("ToWho"))
response.Write(" 成功发送!<BR>")
Set JMail = Nothing
Repeat1__index=Repeat1__index+1
wend
else
end if
Recordset1.Close()
Set Recordset1 = Nothing
'构建一个自身请求自身的方法
response.redirect "email_sendall.asp?page="&(cpage+1)&"subject="&request("subject")&"fromwho="&request("fromwho")&"comment="&comment
%>
里面有一个简单的图表类
使用方法是讲test.asp中的那个属性设定为1到4就可以了。时间关系,还需要修改。
不尽完善,欢迎批评指正!