Sun Java System Messaging Server 6 2005Q4 管理指南

電子郵件至 SMS 轉換程序

為了將電子郵件傳送至遠端網站,必須將電子郵件轉換成遠端 SMSC 可以理解的 SMS 郵件。本節說明將在 SMS 通道上已形成佇列的電子郵件轉換成一封或多封 SMS 郵件的程序。如下所述,可以使用選項來控制 SMS 郵件產生的最大數量、這些 SMS 郵件的最大總長度以及任一封 SMS 郵件的最大大小。只有電子郵件的文字部分 (即 MINE 文字內容類型) 會被使用,被轉換部分的最大數量也會受到控制。

電子郵件的標頭行和文字部分中使用的字元集全部都會轉換成 Unicode,然後再轉換成適當的 SMS 字元集。

當不存在 SMS_TEXT 對映表 (請參閱網站定義的文字轉換) 時,佇列至 SMS 通道的電子郵件會接收到處理,如圖 D–2 中所述。

圖 D–2 SMS 通道電子郵件處理

流程圖顯示 SMS 通道電子郵件處理。

圖 D–3 SMS 通道電子郵件處理 ()

流程圖顯示 SMS 通道電子郵件處理 (續)。

以下步驟與圖 D–2 中編號的方塊相對應︰

  1. 開始時是一個空白的輸出緩衝區。緩衝區使用的字元集為 Unicode。

  2. 電子郵件的創建者位址可以取自以下五種來源之一,這些來源依優先順序由高到低顯示:


    1. Resent-from:
    2. From:
    3. Resent-sender:
    4. Sender:
    5. Envelope From:
    

    如果創建者位址為空字串,則FROM_NONE通道選項的值會附加至緩衝區。

    然而,如果創建者位址為非空字串,則處理FROM_FORMAT通道選項的結果和 LINE_STOP 通道選項的值會附加至輸出緩衝區。

    請注意,如果USE_HEADER_RESENT選項值為 1,則僅考量 Resent-from:Resent-sender: 標頭行。否則,忽略 Resent- 標頭行。

  3. 如果 Subject: 標頭行不存在或為空,則SUBJECT_NONE選項的值會附加至輸出緩衝區。

    否則,處理SUBJECT_FORMAT選項的結果和LINE_STOP通道選項的值會附加至輸出緩衝區。

  4. 如果不存在文字郵件部分,則NO_MESSAGE通道選項的值會附加至輸出緩衝區。

    如果存在文字郵件部分,則CONTENT_PREFIX通道選項的值會附加至輸出緩衝區。

    將捨棄非文字郵件部分。

  5. 對於每個文字部分,如果未達到 MAX_MESSAGE_PARTS 的限制,就會被解碼成 Unicode,並連同 LINE_STOP 通道選項的值一起附加至緩衝區。

  6. 然後,輸出緩衝區的結果就會從 Unicode 轉換成 SMSC 的預設字元集或 UCS2 (UTF-16)。SMSC 的預設字元集使用SMSC_DEFAULT_CHARSET選項指定。

  7. 轉換之後,會將其截斷以不超過MAX_MESSAGE_SIZE位元組。

  8. 來自電子郵件至 SMS 轉換程序的轉換字串會被分割為一個或多個 SMS 郵件,任何單一 SMS 郵件均不超過 MAX_PAGE_SIZE 位元組。至多將產生MAX_PAGES_PER_MESSAGESMS 郵件。


    備註 –

    由於一封電子郵件可能有多位收件者,可能需要對每個收件者位址都執行步驟 6 到步驟 8,這樣會使用第 4 頁「將電子郵件導向通道」中所述的 MAXLENMAXPAGESPAGELEN 屬性。


範例電子郵件處理

例如,使用通道的預設設定,電子郵件為︰


From: John Doe 
To: 1234567@sms.siroe.com
Subject: Today’s meeting
Date: Fri, 26 March 2001 08:17

The staff meeting is at 14:30 today in the big conference room.

將會轉換成以下 SMS 郵件:

jdoe@siroe.com (Today’s meeting) The staff meeting is at 14:30 today in the big conference room.

如果使用以下這組不同的選項設定:


CONTENT_PREFIX=Msg:
FROM_FORMAT=From:${pa}
SUBJECT_FORMAT=Subj:$s

則會產生:

From:John Doe Subj:Today’s meeting Msg:The staff meeting is at 14:30 today in the big conference room.