今天在開發用戶留言,一份存到資料庫中,另外一份要發送到製定的郵箱中,因不知道伺服器是否支持,如果支持則發送留言訊息到email中。首先,必須有錯誤繼續進行的聲明On Error Resume Next
然後嘗試簡歷jmail實例:
Dim JMail
Set JMail=Server.CreateObject(JMail.Message)
對實例做出判斷,如果元件沒有安裝成功,則沒有建立實例:
If JMail Is Nothing Then
Response.Write 不支援
Else
Response.Write 支持
End If
其他組件同樣處理,非常簡單了。
最好在global檔案中處理,裡面使用的時候不用那麼麻煩了。
最好的方法把郵件生成放到一個表裡,然後再說發送的事情。
複製代碼代碼如下:
Function IsObjInstalled(strClassString)
On Error Resume Next
IsObjInstalled = False
Err = 0
Dim xTestObj
Set xTestObj = Server.CreateObject(strClassString)
If 0 = Err Then IsObjInstalled = True
Set xTestObj = Nothing
Err = 0
End Function
判斷代碼:
if IsObjInstalled(JMail.Message)=True then{
if IsObjInstalled(JMail.Message) =True then
SendStat = Jmail(***@vevb.com,來自網路上的客戶留言,<html><head><meta http-equiv=Content-Type content=text/html; charset=gb2312><title>網站使用者留言</title></head><body>留言人:&txtname&<br>性別:&xingbie&<br>諮詢網站:&txtweb&<br>聯絡方式:&txttel&<br>留言內容:&cont ent&<br>IP位址:&ipaddress&<br>留言時間:&now()&<br><br>本郵件由系統自動發送,無須回覆<!--腳本之家www.vevb.com--><br ><br></body></html>,GB2312,text/html)
end if
}
jmail發信函數
複製代碼代碼如下:
' ============================================
' jmail發送郵件
' ============================================
Function Jmail(mailTo,mailTopic,mailBody,mailCharset,mailContentType)
'入口參數:
' mailTo 收件人email地址
' mailTopic 郵件主題
' mailBody 郵件正文(內容)
' mailCharset 郵件字元集,例如GB2312或US-ASCII
' mailContentType 郵件正文格式,例如text/plain或text/html
'傳回值:
' 字串,發送成功後回傳OK,不成功回傳錯誤訊息
'使用方法:
' 1)設定好常數,即以Const開頭的變數
' 2)使用類似如下代碼發信
'Dim SendStat
'SendStat = Jmail([email protected],測試Jmail,這是一封<br/>測試信!,GB2312,text/html)
'Response.Write SendStat
'***************根據需要設定常數開始*****************
Dim ConstFromNameCn,ConstFromNameEn,ConstFrom,ConstMailDomain,ConstMailServerUserName,ConstMailServerPassword
ConstFromNameCn = 彩票網'發信人中文姓名(發中文郵件的時候使用),例如'張三'
ConstFromNameEn = bc5'發信人英文姓名(發英文郵件的時候使用),例如'zhangsan'
ConstFrom = [email protected]'寄信者郵件地址,例如'[email protected]'
ConstMailDomain = smtp.163.com'smtp伺服器位址,例如smtp.163.com
ConstMailServerUserName = [email protected]'smtp伺服器的信箱登陸名,例如'zhangsan'。注意要與寄信人郵件地址一致!
ConstMailServerPassword = www.vevb.com'smtp伺服器的信箱登陸密碼
'***************依需求設定常數結束*****************
'-----------------------------以下內容無須改動---------------- --------------
On Error Resume Next
Dim myJmail
Set myJmail = Server.CreateObject(JMail.Message)
myJmail.Logging = False'記錄日誌
myJmail.ISOEncodeHeaders = False'郵件頭不使用ISO-8859-1編碼
myJmail.ContentTransferEncoding = base64'郵件編碼設為base64
myJmail.AddHeader Priority,3'新增郵件頭,不要改動!
myJmail.AddHeader MSMail-Priority,Normal'新增郵件頭,不要改動!
myJmail.AddHeader Mailer,Microsoft Outlook Express 6.00.2800.1437'新增郵件頭,不要改動!
myJmail.AddHeader MimeOLE,Produced By Microsoft MimeOLE V6.00.2800.1441'新增郵件頭,不要改動!
myJmail.Charset = mailCharset
myJmail.ContentType = mailContentType
If UCase(mailCharset) = GB2312 Then
myJmail.FromName = ConstFromNameCn
Else
myJmail.FromName = ConstFromNameEn
End If
myJmail.From = ConstFrom
myJmail.Subject = mailTopic
myJmail.Body = mailBody
myJmail.AddRecipient mailTo
myJmail.MailDomain = ConstMailDomain
myJmail.MailServerUserName = ConstMailServerUserName
myJmail.MailServerPassword = ConstMailServerPassword
myJmail.Send ConstMailDomain
myJmail.Close
Set myJmail=nothing
If Err Then
Jmail=Err.Description
Err.Clear
Else
Jmail=OK
End If
On Error Goto 0
End Function