由於工作的關係,必須要使用asp...
打電話問過計中,說明了學校只有支援ASP,什麼都沒有,我偷偷上傳ASP探針程式,得知我們伺服器有支援Jmail,於是我的任務--電子報,就有了希望...^__^
其實對於asp很不熟悉,但是憑著以前學校學過C語言的程度,應該還難不倒我吧?但是要憑空寫出電子報系統,老大又希望二月底能寫出來,於是我決定了從專科就了解的定律-- 修改為成功之母,下載了藍色小鋪的許多asp電子報程式來測試...
要測試電子報之前,由於另一個助理不肯給我網站帳號跟密碼,要我先做好,她在幫我上傳...~_~,我懶得說服她,於是我只好自己用借來的桌上型電腦架了伺服器測試,加上藍色小鋪的程式,以下是清單:
O.S : windows xp pro
伺服器 : IIS 5.1
mail 伺服器 :計中的
元件 :Jmail 4.5 free
asp電子報程式: 電子報系統(含用戶管理)/提供者: 藍色小鋪會員--- 健康
------------------------------------------------------------------------------------------------------------
花了些工夫,架好伺服器,可以單機測試了,是了不少程式,就是這支電子報程式!修改一些地方就可以執行了,超感動的!不過卻有個致命的缺點,就是...當選擇一個E-mail發送是沒問題的,但是兩人以上,就只有第一個人才能收到,對asp程式不熟的我,想過要放棄asp,想要改自己架web伺服器支援php,用phplist電子報程式,聽說這套程式發展的挺成熟的!可惜我們單位沒錢買多的電腦,連我在用的電腦都是借來的,要還給人家的!所以我就回到ASP的懷抱了..~_~
好吧!大家都在上班,也不知道該找誰求救,於是雙手合十,拜求google & 藍色小鋪..
找了很多關於ASP & Jmail的文章,但是找不太到解法,後來發現Jmaul改版後,語法與舊版大不同,雖然還沒上傳到伺服器,計中支援的Jmail應該是4.3版,希望沒問題啊!
八點上班,昨晚待到快七點,感覺有點眉目了,我發現Jmail無法順利寄出的原因在於無法只用" ; "分隔 E-mail,用 ; 分隔E-mail雖然是在寄E-mail常用的方法,可是在Jmail底下卻將所有E-mail連成一個,於是永遠只有第一個E-mail的人才收得到,網路上不少網友分享,這要用迴圈來解決,雖然當資料上千封的時候,迴圈跑起來可能會很慢...~_~,不過就目前而言,這是唯一解法。
就在剛剛,我終於試成功了,其實不難啦,只是在於迴圈寫在哪裡,我將程式碼公佈,希望有幫助。
p.s 紅色是剪下的部份,藍色是修改過的
-----------------------------------------原始的一小段程式碼------------------------------------------------------------------------------------
...
...
..
.
Rs("SendDate") = Fyear&Fmon&Fday
rs.update
rs.close
rs.open "Select * from UserData Where 識別碼 in ("&FCheck&")",conn,1,3
FMailTo=""
do while not rs.eof
'response.Write(Rs("UserName")&"<br>")
if Ucase(Rs("Send")) <> "NO" then
if FMailTo = "" then
FMailto = FMailto & Rs("EMail")
else
FMailto = FMailto & ";" & Rs("EMail")
end if
end if
rs.movenext
loop
rs.close
'response.write FMailto
'TCDONTS
TJMAIL
'aspemail
sub TCdoNTS
' CDONTS =========================================
set mail1=server.createobject("CDONTS.NewMail")
mail1.To= FMailto
mail1.From = "allan.lin@msa.hinet.net"
if FBodyType = "HTML" then
mail1.BodyFormat = 0
mail1.MailFormat = 0
end if
mail1.subject= "港都春天電子報 - 本期內容:"&FPapersubject
mail1.body = FPapreBody
mail1.send
set mail1=nothing
end sub
' JMAIL ===============================
SUB TJmail
Dim JMail
Set JMail = Server.CreateObject("JMail.SMTPMail")
jmail.ISOEncodeHeaders = false
jmail.ContentTransferEncoding = "mimi"
jmail.Encoding = "mimi"
jmail.Charset = "big5"
if FBodyType = "HTML" then
JMail.ContentType = "text/html"
end if
'JMail.Logging = True
'JMail.ServerAddress="msa.hinet.net" '請設定本公司提供的Mail Server
JMail.ServerAddress="10.0.0.25" '網際威龍用的 SMTP Server Address
JMail.Sender = "admin@10.0.0.25" '寄件人名稱
JMail.Subject = "港都春天電子報 - 本期內容:"&FPapersubject '郵件主旨
JMail.AddRecipient FMailto '請修改為您的收信E-Mail
JMail.Body = FPaperBody
JMail.Priority = 1
JMail.Execute
Set JMail = Nothing
end sub
...
...
...
-----------------------------------------修改的一小段程式碼------------------------------------------------------------------------------------
...
...
..
.
Rs("SendDate") = Fyear&Fmon&Fday
rs.update
rs.close
我將這裡的程式碼剪到下面紅色地方
'TCDONTS
TJMAIL
'aspemail
sub TCdoNTS
' CDONTS =========================================
set mail1=server.createobject("CDONTS.NewMail")
mail1.To= FMailto
mail1.From = "chiming@cc.feu.edu.tw"
if FBodyType = "HTML" then
mail1.BodyFormat = 0
mail1.MailFormat = 0
end if
mail1.subject= "本期內容:"&FPapersubject
mail1.body = FPapreBody
mail1.send
set mail1=nothing
end sub
' JMAIL ===============================
SUB TJmail
Dim JMail
Set JMail = Server.CreateObject("JMail.SMTPMail")
jmail.ISOEncodeHeaders = false
jmail.ContentTransferEncoding = "mimi"
jmail.Encoding = "mimi"
jmail.Charset = "big5"
if FBodyType = "HTML" then
JMail.ContentType = "text/html"
end if
'JMail.Logging = True
'JMail.ServerAddress="cc.feu.edu.tw" 'Mail Server
JMail.ServerAddress="cc.feu.edu.tw" 'SMTP Server Address
JMail.Sender = "useid@mail server"
JMail.SenderName = "usename" '寄件人名稱
JMail.Subject = "本期內容:"&FPapersubject '郵件主旨
rs.open "Select * from UserData Where 識別碼 in ("&FCheck&")",conn,1,3
FMailTo=""
do while not rs.eof
'response.Write(Rs("UserName")&"<br>")
if Ucase(Rs("Send")) <> "NO" then
if FMailTo = "" then
FMailto = FMailto & Rs("EMail")
else
'FMailto = FMailto & "; " & Rs("EMail")
JMail.AddRecipient FMailto
FMailto = Rs("EMail")
JMail.AddRecipient FMailto
end if
end if
rs.movenext
loop
rs.close
'response.write FMailto
'JMail.AddRecipient FMailto
JMail.Body = FPaperBody
JMail.Priority = 3
JMail.Execute
Set JMail = Nothing
end sub
...
..
.
- Feb 14 Thu 2008 09:42
ASP & Jmail 奮戰記
全站熱搜
留言列表