410 likes | 646 Views
第 9 章 運用 CDO 物件寄發 電子郵件. 製作. 基本觀念 - E-mail 的相關協定. 四種處理 E-mail 訊息的相關協定( protocol ): SMTP POP IMAP MIME. 基本觀念 - E-mail 的相關協定. SMTP 簡單信件傳輸協定( Simple Mail Transfer Protocol , SMTP )將規範郵件的傳送機制,定義於 RFC 2821 ( http://www.ietf.org/rfc/rfc2821.txt )。
E N D
基本觀念- E-mail的相關協定 • 四種處理E-mail訊息的相關協定(protocol): • SMTP • POP • IMAP • MIME
基本觀念- E-mail的相關協定 • SMTP • 簡單信件傳輸協定(Simple Mail Transfer Protocol,SMTP)將規範郵件的傳送機制,定義於RFC 2821(http://www.ietf.org/rfc/rfc2821.txt)。 • 運用CDO物件處理E-mail訊息的程式,將與SMTP 伺服器取得聯繫,將E-mail傳送至提供服務的SMTP 伺服器,再將E-mail傳送給負責接收的SMTP 伺服器,以便讓收信人經由POP或IMAP取得郵件。
基本觀念- E-mail的相關協定 • POP POP稱之為郵局協定(Post Office Protocol),目前的版本為POP 3,定義於RFC 1939(http://www.ietf.org/rfc/rfc1939.txt),POP規範使用者取得E-mail伺服器上信件的機制。 • 使用POP 3協定時,無法查詢收件資料夾以外的其他資料夾。
基本觀念- E-mail的相關協定 • IMAP 網際網路訊息存取協定(Internet Message Access Protocol,IMAP)為接收訊息的進階協定,目前使用的版本為 IMAP4,定義於RFC 2060(http://www.ietf.org/rfc/rfc2060.txt)。 • 運用IMAP協定時,必須確認郵件伺服器支援這個協定。
基本觀念- E-mail的相關協定 • MIME MIME為多用途的網際網路信件擴充標準(Multipurpose Internet Mail Extensions),將規範傳輸內容的訊息、附件及其它內容的格式,與MIME相關的標準文件有RFC 822、RFC 2045、RFC 2046和RFC 2047。
基本觀念- 簡介CDO物件 • CDO物件的全名為Collaboration Data Objects,程式設計師可運用CDO物件,為ASP網頁建立郵件(Messaging)和共同作業(Collaboration)功能。
基本觀念- 簡介CDO物件 • Message物件 Message物件用於處理E-mail的寄送資料與內容,包含收件人、寄件人、信件主旨、內容…等,以及處理傳送E-mail之伺服器設定的Configuration物件。
基本觀念- 簡介CDO物件 • Configuration物件 Configuration物件用於管理使用CDO物件的相關設定,傳送E-mail時,將設定傳送E-mail之伺服器的名稱、使用之連結埠與連線逾時時間…等。
基本觀念- 簡介CDO物件 • BodyPart物件 欲手動建立MIME格式的Message物件時,可使用BodyPart協助建立。
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • ASP網頁內運用CDO物件寄送E-mail,必須按照以下三個步驟: STEP 1、建立Configuration物件,完成使用E-mail伺服器的相關設定 STEP 2、建立包含郵件內容的Message物件,並依序設定傳送郵件的寄件人、收件人、郵件主旨、寄送日期、信件內容 STEP 3、傳送信件
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • STEP 1、建立Configuration物件,完成使用E-mail伺服器的相關設定 • 開始運用CDO物件寄發E-mail前,必須先建立Configuration物件,語法如下: Set 物件變數 = Server.CreateObject("CDO.Configuration")
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • 建立Configuration物件後,需取得Fields集合物件,並運用item方法設定傳送E-mail之伺服器。 • 設定各欄位(參數)時,將依照以下語法運用『http://schemas.microsoft.com/cdo/configuration/』名稱空間指定。 http://schemas.microsoft.com/cdo/configuration/欄位名稱
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • 下表將說明幾個常用的欄位。
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • STEP 2、建立包含郵件內容的Message物件,並依序設定傳送郵件的寄件人、收件人、郵件主旨、寄送日期、信件內容 • 處理E-mail內容時,必須先建立Message物件,語法如下: Set 物件變數 = Server.CreateObject("CDO.Message")
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • 建立Message物件後,接著,必須將處理寄送E-mail相關設定之Configuration物件,設定給Message物件的Configuration屬性,如以下敘述: Set msg.Configuration = conf '將設定E-mail相關設定的Configuration物件,設定給Message物件
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • Message物件的相關屬性列於下表:
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • 以下敘述將設定欲寄送E-mail的相關資料。
運用CDO物件寄送E-mail- 用ASP網頁寄出信件 • STEP 3、傳送信件 完成設定後,呼叫Send方法,便可開始傳送E-mail,如以下敘述。 msg.Send
運用CDO物件寄送E-mail- 為信件加上附件 • 欲將檔案附加到E-mail裡,只要在建立Message物件後,呼叫AddAttachment方法即可,語法如下: Message物件.AddAttachment 檔案路徑與名稱[, 帳號[, 密碼]] • 檔案路徑與名稱:欲建立為附件的檔案路徑與名稱。 • 帳號:選擇性參數。以URL路徑指定網頁做為附件時,伺服器要求的使用者帳號。 • 密碼:選擇性參數。以URL路徑指定網頁做為附件時,伺服器要求的帳號密碼。
寄送HTML格式的信件- 以HTML語法建立E-mail內容 • 欲寄送一封圖文並茂的E-mail,可以運用HTML語法建立信件內容,但內容必須設定給Message物件的HTMLBody屬性,語法如下: Message物件.HTMLBody = HTML格式的字串
寄送HTML格式的信件- 以HTML語法建立E-mail內容 • 若內容包含圖片,可以呼叫Message物件的AddRelatedBodyPart方法,以MIME標準的關連內容之方式將圖檔加入郵件(Content-Type將被設定為multipart/related),語法如下: Message物件. AddRelatedBodyPart 檔案路徑與名稱, 引用名稱, 引用型態 [, 帳號[, 密碼]]
寄送HTML格式的信件- 以HTML語法建立E-mail內容 • 檔案路徑與名稱: 欲建立為附件的檔案路徑與名稱。 • 引用名稱: 供E-mail內HTML敘述引用圖檔的名稱。 • 引用型態:
寄送HTML格式的信件- 以HTML語法建立E-mail內容 • HTML敘述內,設定<IMG>標籤的src屬性時,必須以『cid:引用名稱』的方式引用圖檔,如以下敘述: <img src="cid:w2145" width="160">
寄送HTML格式的信件- 以HTML語法建立E-mail內容 • 以下敘述則透過URL指定存在於網路上的檔案,將該圖檔加入E-mail,同樣以w2145的名稱引用。 URLPath = "http://bitc.myweb.hinet.net/books/images/A4033.jpg" msg.AddRelatedBodyPart URLPath, "w2145", 1
寄送HTML格式的信件- 指定HTML網頁建立郵件 • Message物件的CreateMHTMLBody方法可以運用URL指定網路上的網頁,然後以E-mail寄出該網頁的連結。 • 優點: • 可以避免將HTML標籤串連成字串建立E-mail的內容時,導致過於冗長的敘述。 • 若設定E-mail內容僅包含網頁的位址,並不包含網頁引用的所有資源,E-mail的體積比較小。
寄送HTML格式的信件- 指定HTML網頁建立郵件 • 以下為CreateMHTMLBody方法的呼叫語法: Message物件.CreateMHTMLBody 網頁的URL路徑[, 資源引用方式 [,帳號 [,密碼]]] • 網頁的URL路徑 指定欲建立為E-mail之網頁的URL路徑。 • 資源引用方式 設定E-mail引用網頁相關連結資源的方式,所謂的資源意指引用的圖檔、背景音樂…等 。各設定值的意義請參考下一張投影片。
寄送HTML格式的信件- 指定HTML網頁建立郵件 • 下表將說明各設定值的意義:
寄送HTML格式的信件- 指定HTML網頁建立郵件 • 帳號 選擇性參數。存放網頁之伺服器要求的使用者帳號。若伺服器未要求,可省略。 • 密碼 選擇性參數。存放網頁之伺服器要求的帳號密碼。若伺服器未要求,可省略。
寄送HTML格式的信件- 指定HTML網頁建立郵件 • 以下敘述將運用URL路徑指定網頁,做為E-mail郵件的內容。 URLPath = "http://bitc.myweb.hinet.net/books/database/A4033.htm" msg.CreateMHTMLBody URLPath, 31 '以URLPath引用的網頁做為E-mail的內容,且設定E-mail不包含引用的資源
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • E-mail的架構 MIME格式之E-mail,其架構分為Header與Content兩大部分。 如下圖所示:
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • Header(郵件標題)- 郵件標題所包含的標準內容,說明如下表:
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • Content(郵件內容)- 包含郵件內文(Text)與附件(Attachment)兩個部分。 • 郵件內容的顯示格式,將依照Header的Content-Type指定之方式呈現。 • 當郵件內容格式為RTF(Rich Text Format),或者包含附件時,Content-Type將設定為『multipart/alternative』。 • 若附加檔案為E-mail內容的一部份,則Content-Type應設定為『multipart/related』。
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • 運用BodyPart處理郵件內容 • 取得Message物件的BodyPart物件,語法如下: Set BodyPart物件 = Message物件.BodyPart • 在BodyPart物件的BodyParts集合內,建立新的BodyPart物件,並傳回該物件,語法如下: Set BodyPart物件 = Message物件.AddBodyPart
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • Charset BodyPart物件包含內容使用的字元集(編碼)。若使用繁體中文,應設定為Big5。 • ContentMediaType 設定BodyPart物件包含之內容的型態與子型態,以指定內容的性質。各種型態內容設定值之意義請參考下一章投影片。
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • 下表為各種型態內容設定值之意義:
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • ContentTransferEncoding 指定BodyPart物件包含內容使用的編碼,各編碼的意義說明於下表:
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • 將檔案內容匯入BodyPart物件 • 步驟如下: • STEP 1、取得包含BodyPart物件已解碼內容的Stream物件 呼叫BodyPart物件的GetDecodedContentStream方法,語法如下: Set Stream物件 = BodyPart物件.GetDecodedContentStream
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • STEP 2、呼叫Stream物件LoadFromFile方法載入指定檔案 以下語法為呼叫Stream物件的LoadFromFile方法,將檔案載入Stream物件。 Stream物件.LoadFromFile 檔案路徑與名稱 • 檔案路徑與名稱 欲載入Stream物件之檔案的儲存位置路徑與名稱。
寄送HTML格式的信件- 手動運用HTML文件建立MIME郵件 • STEP 3、呼叫Stream物件的Flush方法更新Stream物件的內容 將檔案載入Stream物件後,需呼叫Flush方法更新內容Stream物件內容,語法如下: Stream物件.Flush