本節簡短說明 JMQ 通知外掛程式如何符合完整郵件佇列服務的環境,並接著提供有關配置 JMQ 通知外掛程式的詳細說明。
JMQ 通知外掛程式僅是郵件佇列服務的一部分。郵件傳送服務也包含使用郵件的用戶端及郵件佇列基礎架構 (代理程式、管理元件等)。
以下步驟概述您應執行以建立支援 Messaging Server 的郵件佇列服務之作業:
定義通知郵件服務。
定義 Messaging Server 安裝所需的通知郵件。郵件服務開發生命週期的規劃和設計階段不在本章的論述範圍內。但在您配置 JMQ 通知外掛程式之前,應回答以下設計問題:
需要為哪些郵件事件產生通知?如需可用通知郵件的清單,請參閱22.3.1 通知郵件。
打算產生郵件至佇列、主題或兩者?
是否打算同時使用專用事件通知服務和郵件佇列服務?
回答這些問題有助於決定要配置一個通知外掛程式或多個外掛程式,並判定如何配置每個外掛程式。
安裝、配置及部署郵件佇列產品。
如需有關安裝郵件佇列的資訊,請參閱「Sun Java System Message Queue Installation Guide」。
如需有關配置及部署郵件佇列的資訊,請參閱「Sun Java System Message Queue Administration Guide」。
編寫將使用 JMQ 通知郵件的一或多個郵件佇列用戶端。
用戶端必須符合郵件佇列用戶端 API 的需求。以下路徑提供以 C 編寫的用戶端原始碼之簡單範例:
/opt/SUNWmsgsr/examples/jmqsdk/ |
原始碼檔案名稱為 jmqclient.c。
此用戶端原始碼會接收 libjmqnotify 程式庫中的參數所定義之 JMQ 通知郵件的郵件,並接著將郵件輸出傳送至 stdout。
如需有關以 C 或 Java 編寫郵件佇列用戶端的資訊,請參閱「Sun Java System Message Queue Developer's Guide for C Clients」或「Sun Java System Message Queue Developer's Guide for Java Clients」。
配置與啟用產生通知郵件的 JMQ 通知外掛程式。
本章接下來會說明如何配置通知外掛程式。
配置與啟動執行階段郵件佇列用戶端。
如需有關部署執行階段郵件佇列用戶端的資訊,請參閱「Sun Java System Message Queue Administration Guide」。
在此程序中,請先配置將產生通知的郵件事件。接著指定郵件佇列所需的資訊。最後 (在步驟 9 中),請在外掛程式程式庫的名稱之後指定參數,以配置外掛程式名稱:
'/opt/SUNWmsgsr/lib/libjmqnotify$plug-in_name' |
如果未指定外掛程式名稱,預設會使用 jmqnotify。
應安裝、配置及部署以下產品:
Sun Java System Messaging Server
Sun Java System 郵件佇列 3.6 SP3 2005Q4 或更新版本
將在以下步驟配置的大部分 configutil 參數,均為選擇性參數。如需這些參數的預設值清單,請參閱表 22–2。
配置通知郵件參數。
針對您想納入外掛程式的每種通知郵件,搭配 configutil 公用程式使用 local.store.notifyplugin 指令。
例如,若要啟用新郵件的通知,請輸入:
configutil -o local.store.notifyplugin.jmqnotify.NewMsg.enable -v 1 |
其中 jmqnotify 是外掛程式的名稱,
而 -v 1 啟用此郵件的通知。值 0 會停用此郵件的通知。
如需所有 JMQ 通知郵件的清單,請參閱22.3.1 通知郵件。
如需啟用 JMQ 通知郵件的 configutil 參數定義,請參閱「Sun Java System Messaging Server Administration Reference」中的「Chapter 3: Messaging Server Configuration」。
部分通知郵件使用多個 configutil 參數啟用郵件的其他功能。例如,部分郵件可在通知文字中帶有郵件標頭。如需有關如何配置這些郵件的說明,請參閱newflags 和 oldflags 特性的語法。
您必須分別為每個配置的外掛程式配置參數。
因此,如果您配置兩個名為 jmq1 和 jmq2 的外掛程式,並要為這兩個外掛程式啟用新郵件通知,必須執行 local.store.notifyplugin 指令兩次:
configutil -o local.store.notifyplugin.jmq1.NewMsg.enable -v 1 |
configutil -o local.store.notifyplugin.jmq2.NewMsg.enable -v 1 |
例如,輸入以下指令:
configutil -o local.store.notifyplugin.jmqnotify.jmqHost -v "127.0.0.1" |
其中 jmqnotify 是外掛程式的名稱,
而 "127.0.0.1" 是郵件佇列代理程式的主機電腦 IP 位址。
例如,輸入以下指令:
configutil -o local.store.notifyplugin.jmqnotify.jmqPort -v "7676" |
其中 jmqnotify 是外掛程式的名稱,
而 "7676" 是郵件佇列代理程式的連接埠。
指定授權產生郵件至服務的郵件佇列使用者之使用者 ID 和密碼。
例如,輸入以下指令:
configutil -o local.store.notifyplugin.jmqnotify.jmqUser -v "guest" |
configutil -o local.store.notifyplugin.jmqnotify.jmqPwd -v "%$#a62t&" |
其中 jmqnotify 是外掛程式的名稱,
而 "guest" 和 "%$#a62t&" 分別是郵件佇列使用者的使用者 ID 和密碼。
請按照以下步驟:
指定目標是主題或佇列。
例如,輸入以下指令:
configutil -o local.store.notifyplugin.jmqnotify.DestinationType -v "queue" |
其中 jmqnotify 是外掛程式的名稱,
而 "queue" 會指定目標為佇列。此參數允許的值為 "queue" 和 "topic"。
指定目標名稱。
例如,輸入以下其中一個指令:
configutil -o local.store.notifyplugin.jmqnotify.jmqQueue -v "JES-MS" |
或
configutil -o local.store.notifyplugin.jmqnotify.jmqTopic -v "JES-MS" |
其中 jmqnotify 是外掛程式的名稱,
jmqQueue 或 jmqTopic 識別目標類型。jmqQueue 和 jmqTopic 參數性質相同但彼此互異;您僅能在一個外掛程式中使用其中一種參數。
"JES-MS" 是郵件將傳送至的佇列或主題範例名稱。
例如,輸入以下指令:
configutil -o local.store.notifyplugin.jmqnotify.Priority -v 3 |
其中 jmqnotify 是外掛程式的名稱,
而 -v 3 是指定給此外掛程式所產生之郵件的郵件佇列優先順序。
Priority 的預設值為 4。
例如,輸入以下指令:
configutil -o local.store.notifyplugin.jmqnotify.ttl -v 100 |
其中 jmqnotify 是外掛程式的名稱,
而 -v 100 指定郵件佇列服務保留郵件 100 毫秒,再進行遞送或捨棄。值 0 表示會永久保留郵件;郵件不會逾時。
例如,輸入以下指令:
configutil -o local.store.notifyplugin.jmqnotify.Persistent -v 1 |
其中 jmqnotify 是外掛程式的名稱,
而 -v 1 指定郵件佇列服務中使用的郵件為永久性。允許的值為 1 (永久性) 和 0 (非永久性)。
若要使用預設名稱配置單一外掛程式,您可以輸入外掛程式程式庫之完全合格的名稱,或程式庫的名稱及其外掛程式參數:
configutil -o local.store.notifyplugin -v /opt/SUNWmsgsr/lib/libjmqnotify |
或
configutil -o local.store.notifyplugin -v '/opt/SUNWmsgsr/lib/libjmqnotify$jmqnotify' |
其中 libjmqnotify 是程式庫名稱
而 jmqnotify 是外掛程式參數的預設名稱。
使用美元符號 ($) 分隔程式庫名稱和參數。
以單引號括住整個值 ('值');如果未這麼做,shell 會解譯美元符號。
預設外掛程式讀取的 configutil 參數有以下名稱:
local.store.notifyplugin.jmqnotify.* |
若要配置 jmq42 等不同的外掛程式名稱,請輸入以下指令:
configutil -o local.store.notifyplugin -v '/opt/SUNWmsgsr/lib/libjmqnotify$jmq42' |
jmq42 外掛程式讀取的 configutil 參數有以下名稱:
local.store.notifyplugin.jmq42.* |
為您打算建立的每個外掛程式配置一組獨立的 JMQ 通知參數。
例如,假設您配置兩個名為 jmq1 和 jmq2 的外掛程式,且您要為這兩個外掛程式啟用新郵件通知,並僅為 jmq2 外掛程式啟用清除郵件通知。在此情況下,您需要如下執行 local.store.notifyplugin 指令三次:
configutil -o local.store.notifyplugin.jmq1.NewMsg.enable -v 1 |
configutil -o local.store.notifyplugin.jmq2.NewMsg.enable -v 1 |
configutil -o local.store.notifyplugin.jmq2.PurgeMsg.enable -v 1 |
您也必須指定啟用外掛程式與郵件佇列服務進行通訊的參數。
如需有關配置所有通知參數的逐步說明,請參閱配置 JMQ 通知外掛程式。
配置外掛程式名稱。
若要配置兩個名為 jmq1 和 jmq2 的外掛程式,請輸入以下指令:
configutil -o local.store.notifyplugin -v '/opt/SUNWmsgsr/lib/libjmqnotify$jmq1$$/opt/SUNWmsgsr/ \ lib/libjmqnotify$jmq2' |
在此範例中,會執行兩個外掛程式程式庫實例。
使用一個美元符號 ($) 分隔程式庫名稱和指定外掛程式名稱的參數。
使用兩個美元符號 ($$) 分隔第一個外掛程式實例和第二個外掛程式實例。
以單引號括住整個值 ('值');如果未這麼做,shell 會解譯美元符號。
在此範例中,第一個實例會從名為 jmq1 的參數建構其配置:
local.store.notify.jmq1.* |
第二個實例會從名為 jmq2 的參數建構其配置:
local.store.notify.jmq2.* |
大部分的通知郵件可透過執行單一 local.store.notifyplugin 指令來指定。
但是,以下通知郵件會 (或可能會) 使用多個 local.store.notifyplugin 指令進行配置:
NewMsg
UpdateMsg
DeleteMsg
MsgFlags
以下程序說明如何設定這些通知郵件。
您可以將郵件標頭和郵件內文,加入有新的或更新的電子郵件時所傳送之通知郵件文字中。
您可以選擇是否要包含郵件標頭和郵件內文;您可以包含兩個功能、僅包含一個功能或不包含任何功能。預設為傳送不含郵件標頭或郵件內文的郵件。
指定新郵件通知或更新郵件通知:
configutil -o local.store.notifyplugin.jmqnotify.NewMsg.enable -v 1 |
configutil -o local.store.notifyplugin.jmqnotify.UpdateMsg.enable -v 1 |
其中 jmqnotify 是外掛程式的名稱,
而 -v 1 啟用這些郵件的通知。值 0 會停用通知。
以大於零的值指定 maxHeaderSize 參數,如以下範例所示:
configutil -o local.store.notifyplugin.jmqnotify.maxHeaderSize -v 1024 |
其中 jmqnotify 是外掛程式的名稱,
而 1024 是可傳送的標頭大小上限。maxHeaderSize 的預設值為 0,表示傳送的郵件無標頭資訊。
以大於零的值指定 maxBodySize 參數,如以下範例所示:
configutil -o local.store.notifyplugin.jmqnotify.maxBodySize -v 1024 |
其中 jmqnotify 是外掛程式的名稱,
而 5120 是可傳送的郵件內文大小上限。maxBodySize 的預設值為 0,表示傳送的郵件無內文。
您可以將郵件標頭加入刪除電子郵件時所傳送的通知郵件文字中。
可以選擇是否要包含郵件標頭。預設為傳送不含郵件標頭的通知。
在刪除電子郵件時傳送通知:
configutil -o local.store.notifyplugin.jmqnotify.DeleteMsg.enable -v 1 |
其中 jmqnotify 是外掛程式的名稱,
而 -v 1 啟用此郵件的通知。值 0 會停用通知。
configutil -o local.store.notifyplugin.jmqnotify.ExpungeHeaders -v 1 |
其中 jmqnotify 是外掛程式的名稱,
而 -v 1 表示刪除郵件通知會帶有郵件標頭。ExpungeHeaders 的預設值為 0,表示禁止刪除郵件通知帶有標頭資訊。
您必須配置 ExpungeHeaders 參數讓 DeleteMsg 郵件帶有郵件標頭。
以大於零的值指定 maxHeaderSize 參數,如以下範例所示:
configutil -o local.store.notifyplugin.jmqnotify.maxHeaderSize -v 1024 |
其中 jmqnotify 是外掛程式的名稱,
而 1024 是可傳送的標頭大小上限。maxHeaderSize 的預設值為 0,表示傳送的郵件無標頭資訊。
您可以配置通知郵件,使其在電子郵件變更狀態時進行傳送。
每次電子郵件的狀態旗標變更為以下其中之一時,會產生郵件旗標通知:
Answered
Flagged
Deleted
Seen (read)
Draft
傳送郵件旗標通知時,該通知會帶有以下特性:
在電子郵件狀態變更前設定的旗標
在電子郵件狀態變更後設定的旗標
此資訊隨附在 oldflags 和 newflags 兩個特性中,這兩個特性為 5 個字元的字串。
如需有關這兩個特性值的說明,請參閱newflags 和 oldflags 特性的語法。
若要啟用郵件旗標通知,您必須配置以下 configutil 參數:
local.store.notifyplugin.MsgFlags
local.store.notifyplugin.*.MsgFlags.enable
第一個 MsgFlags 參數可讓 IMAP 伺服器及郵件儲存識別並追蹤狀態旗標的變更值,以在通知郵件中遞送此資訊。
此參數會套用到所有通知外掛程式。因此,如果有任何通知外掛程式使用郵件旗標通知,則必須啟用此參數。如果沒有外掛程式使用郵件旗標通知,請確定停用此參數 (預設值)。
第二個參數 *.MsgFlags.enable 可為特定外掛程式程式庫傳送郵件旗標通知。
必須同時配置這兩個參數才能啟用郵件旗標通知。