Sun Java System Messaging Server 6.3 管理指南

C.2.2 電子郵件至 SMS 轉換程序

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

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

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

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

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

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

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

以下步驟與圖 C–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. 來自C.2.2 電子郵件至 SMS 轉換程序的轉換字串會被分割為一個或多個 SMS 郵件,任何單一 SMS 郵件均不超過 MAX_PAGE_SIZE 位元組。至多將產生MAX_PAGES_PER_MESSAGESMS 郵件。


    備註 –

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


C.2.2.1 範例電子郵件處理

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


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.