Sun Java System Messaging Server 6.3 管理指南

C.2.2 电子邮件到 SMS 的转换过程

为了将电子邮件发送到远程站点,必须将电子邮件转换成能被远程 SMSC 所理解的 SMS 消息。本节说明将 SMS 通道中排队的电子邮件消息转换成一个或多个 SMS 消息的过程。如下文所述,选项可以控制生成的 SMS 消息的最大数目、这些 SMS 消息的最大总长度和任意一条 SMS 消息的最大大小。只有电子邮件消息的文本部分(即,MIME 文本内容类型)会被使用,并且还可以控制已转换部分的最大数目。

电子邮件消息的标题行和文本部分中所使用的字符集均将被转换成 Unicode,然后再转换成相应的 SMS 字符集。

如果没有 SMS_TEXT 映射表(请参见C.2.5 站点定义的文本转换),已排入 SMS 通道的电子邮件消息将按图 C–2 中的说明进行处理。

图 C–2 SMS 通道的电子邮件处理

显示了 SMS 通道电子邮件处理的流程图。

图 C–3 SMS 通道电子邮件处理(

显示了 SMS 通道电子邮件处理的流程图(续)。

以下步骤与图 C–2 中的编号框相对应:

  1. 启动一个空输出缓冲区。该缓冲区所使用的字符集是统一字符编码。

  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_MESSAGE 中所设置数量相同的 SMS 消息。


    注 –

    由于一条电子邮件消息可能会有多个收件人,因此,可能需要对每个收件人地址都执行步骤 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

将会生成以下 SMS 消息:

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