由於工作的關係,必須要使用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
...
..
.


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 chiming 的頭像
    chiming

    I need air

    chiming 發表在 痞客邦 留言(0) 人氣()