配置環境:.Net Framework 1.1,Imai8.02,w3Jmail4.3
實現過程:
不同於在Asp中使用Jmail,直接使用 Server.CreateObject("Jmail.Message")就可以了。在.Net環境中,需要進行設置。
1.安裝jmail4.3
2.找到jmail.dll(Program Files/Dimac/w3JMail4下)
3.執行Program Files/Microsoft Visual Studio .NET/FrameworkSDK/Bin/ildasm.exe(可使用Visual Studio .Net 2003 命令提示),
格式如下:tlbimp c:/Program Files/Dimac/w3JMail4/jmail.dll /out:myJmail.dll /namespace:myJmail
生成myJmail.dll後,copy到web的根目錄的bin目錄。在ASP.Net頁面中,用這個方法引用:
使用Jmail發送郵件很簡單,下面是相關代碼:
using jmail;
private void Page_Load(object sender, System.EventArgs e) //不一定是Load事件
{
jmail.Message jmessage=new jmail.MessageClass();
jmessage.Charset="GB2312";
jmessage.From="[email protected]"; //發信地址
jmessage.FromName= GMail同志" ; //發信人
jmessage.ReplyTo="[email protected]"; //回覆地址
jmessage.Subject="這裏是標題"; //郵件標題
jmessage.AddRecipient("[email protected]","",""); //爲收信人地址,後面兩個參數可爲空!
//AddRecipient(emailAddress,recipientName,PGPKey)
//給郵件添加一個收件人。RecipientName和PGPKey是可選項,RecipientName爲收件人姓名,PGPKey給郵件加密。
jmessage.Body= "這是郵件內容" ; //信件內容
jmessage.MailServerUserName= "****" ; //爲發信郵箱登陸的用戶名
jmessage.MailServerPassWord= "*****" ; //爲發信郵箱登陸的密碼
jmessage.Send("10.0.***.**",false); //IP爲郵件服務器
Response.Write ("email sent successfully!");
jmessage.Close() ;
}
詳細介紹W3 Jmail組件的對象(12個):
1、.POP3對象
屬性(或方法)
說明
Connect(Username,Password,Server,Port)
連接POP3服務器,斷口可選,默認110。
DeleteMessages()
從郵件服務器上刪除所有郵件。
DeleteSingleMessage(MessageID)
從郵件服務器上刪除由MessageID指定的郵件。
Disconnect()
關閉跟郵件服務器的連接。
DownloadHeaders()
從郵件服務器上讀取所有的郵件頭並傳遞給Messages集合。
DownloadMessages()
從郵件服務器讀取所有郵件。
DownloadSingleHeader(MessageID)
從郵件服務器讀取指定的郵件頭並傳遞給Messages集合。
DownloadUnreadMessages()
從郵件服務器上讀取所有未讀郵件。
2、.Messages對象
屬性(或方法)
說明
Clear()
清除集合中的所有內容,並不會刪除郵件服務器上的任何郵件。
Count():Integer
返回集合中記錄的數目:I=Messages.Count
Item(Index):Pointer
返回一個Message對象。Set oMsg=Messages.Item(0)
3、.Message對象
屬性(或方法)
說明
AddAttachment(FileName,isInline,ContentType):String
給郵件添加一個文件型的附件。isInline設置爲True時,添加的這個附件就是一個可嵌入的附件。
AddCustomAttachment(FileName,Data,isInline):String
給郵件添加一個自定義類型的附件。
AddHeader(Xheader,Value)
給郵件添加一個自定義郵件頭X-Header。
AddNativeHeader(Header,Value)
給郵件添加一個郵件頭。
AddRecipient(emailAddress,recipientName,PGPKey)
給郵件添加一個收件人。RecipientName和PGPKey是可選項,RecipientName爲收件人姓名,PGPKey給郵件加密。
AddRecipientBCC(emailAddress,PGPKey)
添加一個郵件暗送人(BCC)地址。
AddRecipientCC(emailAddress,recipientName,PGPKey)
給郵件添加一個郵件抄送人(CC)地址。
AddURLAttachment(bstrURL,bstrAttachAs,isInline,bstrAuth):String
從指定的URL下載文件並添加爲郵件附件。參數bstrAttachAs是用來更改添加爲郵件附件的文件名。
AppendBodyFromFile(FileName)
清除郵件正文,並把指定文件的內容作爲郵件正文。
AppendHTML(Text)
從郵件追加HTML格式正文,如例所示:Message. AppendHTML(“<H3>Hello Word</H3>”)
AppendText(Text)
向郵件添加文本正文。
Clear()
清除所有郵件消息,是成爲一個空對象。
ClearAttachments()
清除附件列表。如:Message.ClearAttachments
ClearCustomHeaders()
清除所有自定義的郵件頭。
ClearRecipients()
清除所有收件人地址列表。
Close()
釋放Jmail與郵件服務器連接而使用的緩存(Cache)。
DecodeHeader(Header):String
輸出一個郵件頭消息。
ExtractEmailAddressesFromURL(bstrURL,bstrAuth)
從指定的網制(URL)讀取並添加郵件列表。
GetMessageBodyFromURL(同上)
刪除郵件正文並用指定的URL的內容代替。
KeyInformation(keyIdentifier):pointer
返回一個PGPKey對象。
LoadFromStream(Stream)
從數據庫流讀取數據,該數據庫流必須符合RFC822標準。
LogCustomMessage(Message)
給Jmail日誌文件添加自定義日誌。此函數只有在logging屬性被設置爲True時有效。
Nq()
將郵件追加到發送隊列等待發送。
ParseMessage(MessageSource)
解析一個郵件,數據流必須符合RFC822格式標準。
SaveToStream(Stream)
保存郵件到數據流,數據流必須符合RFC822格式標準。
Send(MailServer,enque):Boolean
發送郵件。郵件服務器是一個描述郵件服務器名稱或地址的字符串,用戶名和密碼是可選項。當要發送認證郵件時使用格式爲:用戶名:密碼@郵件服務器
SendToNewsGroup(ServerName,NewsGroup)
使用指定的NNTP服務器發送郵件到新聞組,多個郵件用“,”隔開。
About():string
設置一些附加信息。
Attachments():Pointer
返回郵件的附件集合。Set Attachments=Message.Attachments
Body():String
返回郵件正文。Response.Write (Message.Body)
BodyText():String
返回全部的文本正文。Response.Write (Message.BodyText)
Charset():String
設置郵件使用的字符集。默認爲US-ASCII,支持中文則設置爲GB2312。
ContentTransferEncoding():String
設置郵件編碼。默認爲:Quoted-Printable.
ContentType():string
返回正文類型。
Date():Date
返回郵件發送時間。
DeferredDelivery():Date
設置郵件定時發送。
Encoding():String
設置附件的默認編碼:Base64或Quoted-Printable
EncryptAttachments():Boolean
設置爲True時,所有的附件都被加密,當然是編譯器可用的情況下。其默認值爲True.
ErrorCode():Integer
如果message.silent設置爲True時,該函數包含錯誤號。
ErroeMessage():String
如果message.silent設置爲True時,該函數包含錯誤描述。
ErroeSource():String
如果message.silent設置爲True時,該函數包含錯誤來源。
From():String
返回或設置發件人的Email地址。
FromName():String
返回或設置發件人的名字。
HtmlBody():String
返回或設置郵件正文的HTML部分。
ISOEncodeHeaders():Boolean
郵件頭是否使用iso-8859-1編碼。(默認爲True)
Log():String
當Logging爲True時,該函數返回創建的日誌。
Logging():Boolean
是否啓用日誌。Message.Logging=True時,啓用日誌。
MailData():String
返回郵件的源代碼。
MailDomain():String
設置發送郵件時使用的郵件服務器。
MailServerPassWord():String
當郵件服務器使用SMTP發信認證時,該函數設置登錄密碼。
MailServerUserName():String
當郵件服務器使用SMTP發信認證時,該函數設置登錄帳號。
MimeVersion():String
聲明Mime版本,默認爲1.0。
MsPickupdirectory():String
指定MS SMTP服務的Pickup文件夾的位置。
PGPEncrypt():Boolean
當郵件是使用PGP發送時並該屬性被設置爲True時,該郵件將被自動加密。
PGPSign():Boolean
當郵件是使用PGP發送時並該屬性被設置爲True時,該郵件將被自動簽名。
Priority():Byte
設置郵件的優先級:1、2和3
Recipients():Pointer
返回收件人集合。
RecipientsString():String
返回收件人集合(只讀)。
ReplyTo():String
指定一個回覆地址。
Silent():Boolean
當設置爲True時,Send()方法就會忽略錯誤並不將錯誤信息返回給操作系統。
SimpleLayout():Boolean
當設置爲True時,發信時Jmail不會添加郵件頭到郵件裏。
Size():Integer
返回郵件的總字節數。
Subject():String
設置郵件標題。
Text():string
返回完整的郵件內容。
Version():String
返回Jmal的版本信息。
4、Headers對象
屬性(或方法)
描述
GetHeader(HeaderName):String
返回指定的郵件頭的值。
Text():String
返回所有的郵件頭的值。
5、Recipients對象
屬性(或方法)
描述
Add(Value)
追加一個收件人到集合中。
Clear()
清除集合中的全部記錄。
Count():Integer
返回集合中收件人的總數。
Item(Index):Pointer
返回集合中的一個指定的收件人。
6、Recipient對象
屬性(或方法)
描述
New(Name,Email,recipientType):Pointer
創建一個可以添加到收件人集合中Recipients的收件人。
Email():String
返回收件人的郵件。
Name():String
返回收件人的姓名。
ReType():Integer
返回收件人模式(收件人To=0,抄送CC=1,暗送BCC=2)。
7、Attachments對象
屬性(或方法)
描述
Add(Attachment)
添加一個附件到集合。
Clear()
清除集合中的全部附件。
Count():Integer
返回集合中附件的總數。
Item(Index):Pointer
返回集合中指定的附件。
8、Attachment對象
屬性(或方法)
描述
New(FileName,ContentType,Data):Pointer
創建一個可以加入到Attachments集合的附件。如果指定Data的值,那麼Jmail將創建一個以Data參數爲內容的自定義附件。
SaveToFile(FileName)
保存附件到硬盤。
ContentType():String
返回附件類型(ContentType)
Data():String
返回附件的內容。
BinaryData():String
以二進制模式返回附件的內容。
IsInline():Boolean
如果附件被設置爲可嵌入(inline),則返回True。
Name():String
返回附件的文件名稱。
Size():Integer
返回附件的大小。
9、MailMerge對象
屬性(或方法)
描述
BulkMerge(RecordSet,enque,Maildestination)
參照郵件模板合併所有記錄,要指定使用的pickuo文件夾或郵件服務器。
Expand():Pointer
參照用戶指定的方式合併郵件模板(mailTemplate)。
ExpandFromRecordSet(RecordSet):Pointer
參照郵件模板(mailTemplate)合併ADO對象中的一例。
SetDebugMode(TestMailAddress,TestCount)
將郵件合併(mailMerge)設置爲測試模式。
Item(VariableNmae):String
手工設置合併參數。注意:該功能不使用於ADO數據例的合併。
MailTemplate():Pointer
設置一個創建好的Message對象,這個對象將被作爲郵件合併的模板。
MergeAttachments():Boolean
當該屬性設置爲 True時,附件被作爲郵件合併的一個選項。
10、PGPKeys對象
屬性(或方法)
描述
Count():Integer
返回密碼的總數。
Item(Index):Pointer
返回PGPKey信息對象。
11、PGPKeyInfo對象
屬性(或方法)
描述
KeyCreateDate():String
返回郵件密碼創建的時間。
KeyID():String
返回密碼的ID號。
KeyUser():String
返回創建密碼的用戶名。
12、SpeedMailer對象
屬性(或方法)
描述
EnqueMail(FromEmail,RecipientEmails,
Subject,Body,MsPickupdirectory)
添加一個郵件到發送隊列。內容、主題等數據通過該方法的參數傳遞。
SendMail(FromEMail,RecipientEMails,
Subject,Body,MailServers)
通過SMTP發送一封郵件。內容、主題等數據通過該方法的參數傳遞。