前陣子有發過一個簡單的JMAIL郵件發郵件的程式碼,今天就把這個程式碼做一個具體的註解,並增加了另外兩個格式的程式碼,並舉幾個簡單的例子:
首先是jmail.smtpmail的核心程式碼:
<%
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 : 寄件伺服器的位址,如smtp.163.com
'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 = " [email protected] "
strFromer = " [email protected] "
strMailAddress = "mail.ubbcn.com"
Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)
%>
以上是我對發郵件代碼的一個粗略的見解,忘大家不吝賜教!