本节介绍如何为电子邮件到移动设备和移动设备到电子邮件这两项功能设置 SMS Gateway Server。本节包含以下主题:
在 MTA 和 SMSC 之间设置双向电子邮件和 SMS 路由选择所推荐的方法有三步过程:
设置 SMS 地址前缀—选择 SMS 地址前缀。可以使用任何长度不超过十个字符的前缀。
设置网关配置文件—保留该前缀,以与 SMS Gateway Server 配合使用(通过设置网关配置文件)。
配置 SMSC—配置 SMSC,以将 SMS 目标地址路由至以此前缀为开头的 SMS Gateway SMPP 服务器。移动设备始发的电子邮件将只有前缀。回复和通知将不仅有前缀,其前缀后面还跟有十位十进制数。
由 MTA SMS 通道生成的源 SMS 地址应被设置为与所选定的 SMS 地址前缀相匹配。通过设置以下几项即可完成此操作:
MTA SMS 通道选项:
USE_HEADER_FROM=0
DEFAULT_SOURCE_ADDRESS=prefix
第一个设置使通道无法尝试使用电子邮件消息中包含的信息设置 SMS 源地址。第二个设置使 SMS 源地址在未通过任何其他来源进行设置时对其进行设置(设置成选定的前缀)。
将前缀识别为要接受并路由到电子邮件的 SMS 目标地址。通过指定 SELECT_RE 网关配置文件选项即可完成此操作,如下所示:
SELECT_RE=prefix
然后,应设置 SMS Gateway Server 的网关配置文件,使所有中继的 SMS 源地址成为唯一地址。此设置是默认设置,但可通过指定网关配置文件选项 MAKE_SOURCE_ADDRESSES_UNIQUE=1 进行显式设置。这样将得到如下格式的已中继 SMS 源地址:
prefixnnnnnnnnnn
其中 nnnnnnnnnn 是唯一的十位数十进制数字。
最后,应将 SMSC 配置为将所有与前缀(或仅为前缀,或为前缀加一个十位数数字)相匹配的 SMS 目标地址路由到 SMS Gateway Server 的 SMPP 服务器。这种路由选择的正则表达式将类似于:
prefix([0-9]{10,10}){0,1}
其中 prefix 是 DEFAULT_SOURCE_ADDRESS 的值,[0-9] 指定允许的十位数数字的值,{10, 10} 指定允许的最小十位数与最大十位数,而 {0, 1} 指定可有零或这些十位数数字之一。
要启用 SMS Gateway Server,配置参数 local.smsgateway.enable 的值必须设置为 1。使用以下配置实用程序命令设置该值:
# configutil -o local.smsgateway.enable -v 1
要禁用 Gateway Server,请使用以下命令将 local.smsgateway.enable 的值设置为 0:
# configutil -o local.smsgateway.enable -v 0
启用了 SMS Gateway Server 后,可使用以下命令启动和停止它:
# start-msg sms
和
# stop-msg sms
为了运行,SMS Gateway Server 需要一个配置文件。该配置文件是一个使用 UTF-8 记录的统一字符编码文本文件,该文件可以是一个 ASCII 文本文件。该文件的名称必须为:
installation-directory/config/sms_gateway.cnf
文件中的各选项设置的格式如下:
option-name=option-value
作为选项组一部分的选项以如下格式显示:
[group-type=group-name] option-name-1=option-value-1 option-name-2=option-value-2 ... option-name-n=option-value-n
要实现双向 SMS 的电子邮件到移动设备部分,您必须完成以下配置:
要配置电子邮件到移动设备网关配置文件,请执行以下步骤:
向 SMS Gateway Server 配置文件添加一个网关配置文件。
要添加选项组,请使用以下格式:
[GATEWAY_PROFILE=profile_name] option-name-1=option-value-1 option-name-2=option-value-2a ... option-name-n=option-value-n |
网关配置文件名 profile_name 采用上述格式,其长度不得超过 11 个字节。此名称必须与 SMS 通道选项文件中 GATEWAY_PROFILE 通道选项的名称相同。文件名不区分大小写。有关有效通道选项的列表,请参见可用选项
设置网关配置文件选项(例如 SMSC_DEFAULT_CHARSET),以符合远程 SMSC 的特性。
设置其他网关配置文件选项,以符合 SMS 通道的电子邮件特性。
有关网关配置文件选项的完整说明,请参见网关配置文件选项
设置 CHANNEL 选项。
将其值设置为 MTA SMS 通道的名称。
通过网关向电子邮件发送通知后,所得的电子邮件消息将被排入到使用该通道名称的 MTA 中。
要配置 SMPP 中继,请完成以下步骤:
将 SMPP 中继实例(选项组)添加至 SMS Gateway Server 的配置文件中。
要添加选项组,请使用以下格式:
[SMPP_RELAY=relay_name] option-name-1=option-value-1 option-name-2=option-value-2 ... option-name-n=option-value-n |
任何名称都可用作中继的名称。重要的是,该中继名不得用于同一配置文件中的任何其他 SMPP 中继实例。
设置 LISTEN_PORT 选项。
SMS 通道的 SMPP_PORT 选项所使用的值必须与中继的 LISTEN_PORT 选项所使用的值相匹配。请为 LISTEN_PORT 选择一个 TCP 端口号,此端口号应未被任何其他 SMPP 中继或服务器实例所使用,也未被同一计算机上运行的任何其他服务器所使用。
设置 SERVER_HOST 选项。
中继的 SERVER_HOST 选项应给定远程 SMSC 的 SMPP 服务器的主机名。可以使用 IP 地址代替主机名。
设置 SERVER_PORT 选项。
中继的 SERVER_PORT 选项应给定远程 SMSC 的 SMPP 服务器的 TCP 端口。
有关所有 SMPP 中继选项的完整说明,请参见SMPP 中继选项
要配置 SMPP 服务器,请完成以下步骤:
将 SMPP 服务器实例(选项组)添加至 SMS Gateway Server 的配置文件中。
要添加选项组,请使用以下格式:
[SMPP_SERVER=server_name] option-name-1=option-value-1 option-name-2=option-value-2... option-name-n=option-value-n |
任何名称都可用作服务器的名称。重要的是,该服务器名不得用于同一配置文件中的任何其他 SMPP 服务器实例。
设置 LISTEN_PORT 选项。
选择一个任何其他服务器或中继实例没有使用的 TCP 端口号。此外,该端口号也未被同一计算机上的任何其他任何服务器所使用。
需要将远程 SMSC 配置为通过 SMPP 将通知路由到使用此 TCP 端口的 SMS Gateway Server 系统。
有关所有 SMPP 服务器选项的完整说明,请参见SMPP 服务器选项
要配置移动设备到电子邮件功能,则必须执行两个配置步骤:
请注意,多个网关配置文件可使用同一个 SMPP 服务器实例。实际上,同一个 SMPP 服务器实例可同时用于电子邮件到移动设备和移动设备到电子邮件应用程序。
对于由移动设备始发的消息,网关配置文件将提供两类关键信息:如何标识用于该配置文件的 SMS 消息和如何将这些消息转换成电子邮件消息。请注意,此配置文件可以与用于电子邮件至移动设备的配置文件相同,只不过增加了 SELECT_RE 选项。
要配置网关配置文件,请执行以下步骤:
将网关配置文件(选项组)添加至 SMS Gateway Server 配置文件中。
要添加选项组,请使用以下格式:
[GATEWAY_PROFILE=profile_name] option-name-1=option-value-1 option-name-2=option-value-2 ... option-name-n=option-value-n |
任何不超过 11 个字符的名称均可用作配置文件的名称。重要的是,它不能是已用于同一个配置文件中另一个网关配置文件的文件名。
设置 SELECT_RE 选项,必须为每个网关配置文件指定该选项。
此选项的值是一个 ASCII 正则表达式,可用于比较 SMS 目标地址。如果 SMS 目标地址与该正则表达式相匹配,则会通过网关将 SMS 消息发送到使用匹配配置文件所述的特征的电子邮件中。
注意可以配置具有 SMS 地址的重叠集的多个网关配置文件(例如,与地址 000 相匹配的配置文件和与任何其他三位数地址相匹配的其他配置文件)是重要的。但是,当 SMS 消息仅传送给一个网关配置文件(第一个匹配文件)时,应避免执行此操作。而且,未定义比较的顺序。
设置 CHANNEL 选项。
其值应是 MTA 的 SMS 通道名。
有关所有移动设备原始选项的完整说明,请参见网关配置文件选项
添加 SMPP 服务器与添加电子邮件到移动设备 SMPP 服务器的过程相同(请参见SMPP 服务器)。
需要将远程 SMSC 配置为将 SMS 通信路由到 Gateway SMPP 服务器。要执行此操作,SMSC 用于路由移动设备到电子邮件通信的 SMS 目标地址应是为网关配置文件选项 SELECT_RE 设置的值。
例如,如果要将 SMS 地址 000 用于移动设备到电子邮件通信,就需要配置 SMSC,以便将 SMS 目标地址 000 的通信路由到 Gateway SMPP 服务器。网关配置文件应使用选项设置 SELECT_RE=000。
本节将详细说明 SMS Gateway Server 配置文件选项。下文各表列出了全部可用的配置选项以及各选项的简要说明。全局选项、SMPP 中继选项、SMPP 服务器选项和 SMS Gateway Server 配置文件选项各有一个表。
在以下小节中,给出了所有可用配置选项的完整说明。这些小节包括:
全局选项必须放置在配置文件的顶部和所有选项组之前。其余选项必须显示在选项组中。
SMS Gateway Server 目前有三类全局选项:
必须在指定任何选项组之前,在配置文件顶部指定所有全局选项。表 D–20 列出了所有全局配置选项。
表 D–20 全局选项
选项 |
默认值 |
说明 |
---|---|---|
6 |
选择已生成的诊断输出的类型 |
|
|
历史数据文件的绝对目录路径 |
|
0770 |
历史数据文件的权限 |
|
30 分钟 |
向同一历史数据文件写入数据的最长时间 |
|
|
所有 SMPP 中继和服务器实例上并行入站连接的最大数目 |
|
3 天 |
历史数据归档文件中记录的有效期 |
|
10 个线程 |
工作人员线程的初始数目 |
|
50 个线程 |
工作人员线程的最大数目 |
|
64 Kb |
各工作人员线程的堆栈大小 |
各入站 TCP 连接代表一个 SMPP 会话。会话处理由线程池中的工作人员线程处理。当会话处理需要等待 I/O 请求的完成时,工作人员线程停止会话并给出其他要执行的工作。I/O 请求完成后,池中的可用工作人员线程就会恢复会话。
以下选项可用于调整此工作人员线程进程池:THREAD_COUNT_INITIAL、THREAD_COUNT_MAXIMUM、THREAD_STACK_SIZE。
(整数,> 0)为工作线程池初始创建的线程数目该数目不包括用于管理内存中的历史数据的专用线程(2 个线程),也不包括用于侦听外来 TCP 连接的专用线程(SMS Gateway Server 所侦听的每个 TCP 端口/接口地址对各有一个线程)。THREAD_COUNT_INITIAL 的默认值为 10 个线程。
(整数,>= THREAD_COUNT_INITIAL)允许用于工作线程池的最大线程数量。默认值为 50 个线程。
(整数,> 0)工作线程池中每个工作线程的堆栈大小(字节)。默认值为 65,536 个字节 (64 Kb)。
如果一条 SMS 消息被中继,由接收的远程 SMPP 服务器生成的消息 ID 将保存在一个内存中的散列表中。还保存了该消息 ID 以及有关原始电子邮件消息的信息。如果该消息 ID 以后要被某 SMS 通知所引用,此信息就可以被检索出来。然后可以使用检索出来的信息将 SMS 通知发送给相应的电子邮件收件人。
内存中的散列表可通过专用线程返回到磁盘中。所得的磁盘文件称为“历史文件”。这些历史文件有两个用途:用于以非易失性形式保存在重新启动 SMS Gateway Server 后恢复内存中散列表所需的数据,并用于通过在磁盘上保存可能过长的数据来节省虚拟内存。每个历史文件只可于 HASH_FILE_ROLLOVER_PERIOD 指定的秒数内写入,超过此时间后,历史文件就会关闭并创建一个新的历史文件。如果历史文件超过 RECORD_LIFETIME 指定秒数的生存期,就会被从磁盘中删除。
以下选项用于调整历史文件:HISTORY_FILE_DIRECTORY、HISTORY_FILE_MODE、HISTORY_FILE_ROLLOVER_PERIOD、RECORD_LIFETIME。
(字符串,绝对目录路径)向其写入历史文件的目录的绝对路径。如果路径不存在,将新建此目录路径。此选项的默认值为:
msg_svr_base/data/sms_gateway_cache/
使用的目录应位于一个速度适当的磁盘系统中,且具有足够的可用空间用于预期存储;有关存储规划的信息,请参见SMS Gateway Server 存储要求。鼓励各站点将此选项更改为一个更适当的值。
(整数,八进制值)与历史文件关联的文件权限。默认情况下,将使用值 0770(八进制)。
(整数,秒)每隔 HASH_FILE_ROLLOVER_PERIOD 指定的秒数,就会关闭当前历史文件,并且创建一个新的历史文件。默认情况下,使用的秒数值为 1800 秒(30 分钟)。
(整数,秒数 > 0)历史记录的生存期(秒)。超过这个有效期的记录将从内存中清除;超过这个有效期的历史文件则将从磁盘上删除。默认情况下,使用的值为 259,200 秒(3 天)。保存在内存中的记录将由专用来管理内存中数据的线程彻底清除。这些清除操作每隔 HASH_FILE_ROLLOVER_PERIOD 指定的秒数执行一次。磁盘上的文件在必须打开新的历史记录时被清除。
另外还有两个选项:DEBUG 和 LISTEN_CONNECTION_MAX。
(整数,位掩码)启用调试输出。默认值为 6,即选择警告消息和错误消息。
表 D–21 定义了 DEBUG 位掩码的位值。
表 D–21 DEBUG 位掩码
位 |
值 |
说明 |
---|---|---|
0-31 |
-1 |
极其详细的输出 |
0 |
1 |
提示性消息 |
1 |
2 |
警告消息 |
3 |
4 |
错误消息 |
3 |
8 |
子例行程序调用跟踪 |
4 |
16 |
散列表诊断 |
5 |
32 |
I/O 诊断,接收 |
6 |
64 |
I/O 诊断,传输 |
7 |
128 |
SMS 到电子邮件转换的诊断(移动设备始发和 SMS 通知) |
8 |
256 |
PDU 诊断,标题数据 |
9 |
512 |
PDU 诊断,主体数据 |
10 |
1024 |
PDU 诊断,类型-长度-值数据 |
11 |
2048 |
选项处理;将所有选项设置发送到日志文件。 |
(整数,>= 0)所有 SMPP 中继和服务器实例上允许的并行入站 TCP 连接的最大数量。值 0(零)指示对连接数目没有全局限制。但是,给定中继或服务器实例可能会给每个中继或服务器强加限制。
SMS Gateway Server 可以有其 SMPP 中继的多个实例,每个实例都有不同的特征,首要的特征将是所侦听的 TCP 端口和接口。为 SMPP 中继所侦听的每个网络接口和 TCP 接口对进行不同放置时,可能归因于不同的特征。将使用本节中所述的选项来指定这些特征。
每个实例都应放置在以下格式的选项组中:
[SMPP_RELAY=relay-name] option-name-1=option-value-1 option-name-2=option-value-2 ... option-name-n=option-value-n |
字符串 relay-name 仅用于将此实例与其他实例区分开。
表 D–22 列出了 SMPP 中继的配置选项。
表 D–22 SMPP 中继选项
选项 |
默认值 |
说明 |
---|---|---|
255 |
入站 SMPP 客户机连接的连接待办事项 |
|
|
并行入站连接的最大数目 |
|
|
入站 SMPP 客户机连接的网络接口 |
|
|
入站 SMPP 客户机连接的 TCP 端口 |
|
600 s |
读取 SMPP 客户机的入站连接超时 |
|
120 s |
写入 SMPP 客户机的入站连接超时 |
|
1 |
使已中继 SMS 源地址成为唯一的地址并能作为回复地址 |
|
|
要中继到的 SMPP 服务器的主机名或 IP 地址 |
|
|
要中继到的 SMPP 服务器的 TCP 端口 |
|
600 s |
读取出站 SMPP 服务器连接超时 |
|
120 s |
写入出站 SMPP 服务器连接超时 |
(整数,范围在 [0,255] 之间)入站 SMPP 客户机连接的 TCP 堆栈所允许的积压连接请求。默认值为 255。
(整数,>= 0)允许用于此 SMPP 中继实例的并行入站 TCP 连接的最大数量。请注意,如果该值超过全局 LISTEN_CONNECTION_MAX 设置,则会被忽略。
(字符串,"INADDR_ANY" 或点分十进制 IP 地址)侦听入站 SMPP 客户机连接的网络接口的 IP 地址。可以是字符串 "INADDR_ANY"(所有可用的接口)或是点分十进制形式的 IP 地址。(例如 193.168.100.1)。默认值为 "INADDR_ANY"。成簇的 HA 配置将需要将此值设置为对应于 HA 逻辑 IP 地址。
(整数,TCP 端口号)为接受入站 SMPP 客户机连接而绑定的 TCP 端口。必须指定此选项;此选项没有默认值。还请注意,此服务不赋予 Internet 指定的数字授权 (IANA)。
(整数,秒数 > 0)等待从 SMPP 客户机读取数据时所允许的超时。默认值为 600 秒(10 分钟)。
(整数,秒数 > 0)将数据发送至 SMPP 客户机时所允许的超时。默认值为 120 秒(2 分钟)。
(0 或 1)默认情况下,SMPP 中继将向每个 SMS 源地址附加一个唯一的十位数字符串。然后,所得的 SMS 源地址将与其他历史数据一起保存。该结果则是 SMS 用户可以回复到的唯一 SMS 地址。如果用作 SMS 目标地址,SMPP 服务器将检测此地址,然后将 SMS 消息发送给正确的电子邮件创始者。
要禁止生成这种唯一的 SMS 源地址(对于单向 SMS),请将此选项的值指定为 0(零)。
(字符串,TCP 主机名或点分十进制 IP 地址)要将 SMPP 客户机通信中继至的 SMPP 服务器。可以指定一个主机名或 IP 地址。必须指定此选项;此选项没有默认值。
(整数,TCP 端口号)要中继至的远程 SMPP 服务器的 TCP 端口。必须指定此选项;此选项没有默认值。没有为此服务指定的 IANA;不要与为 SNPP 指定的 IANA 相混淆。
(整数,秒数 > 0)等待从 SMPP 服务器读取数据时所允许的超时。默认值为 600 秒(10 分钟)。
(整数,秒数 > 0)将数据发送至 SMPP 服务器时所允许的超时。默认值为 120 秒(2 分钟)。
SMS Gateway Server 可以有其 SMPP 服务器的多个实例,每个实例都有不同的特征,首要的特征将是所侦听的 TCP 端口和接口。为 SMPP 服务器所侦听的每个网络接口和 TCP 接口对进行不同放置时,可能归因于不同的特征。将使用本节中所述的选项来指定这些特征。
每个实例都应放置在以下格式的选项组中:
[SMPP_SERVER=server-name] option-value-1=option-value-1 option-value-2=option-value-2 ... option-name-n=option-value-n |
字符串 server-name 仅用于将此实例同其他实例区分开。
表 D–23 列出了 SMPP 服务器的配置选项。
表 D–23 SMPP 服务器选项
选项 |
默认值 |
说明 |
---|---|---|
255 |
入站 SMPP 服务器连接的连接待办事项 |
|
|
并行入站连接的最大数目 |
|
|
入站 SMPP 服务器连接的网络接口 |
|
|
入站 SMPP 服务器连接的 TCP 端口 |
|
600 s |
入站 SMPP 服务器连接的读取超时 |
|
120 s |
入站 SMPP 服务器连接的写入超时 |
(整数,范围在 [0,255] 之间)入站 SMPP 客户机连接的 TCP 堆栈所允许的积压连接请求。默认值为 255。
(整数 >= 0)允许用于此 SMPP 服务器实例的并行入站 TCP 连接的最大数目。请注意,如果该值超过全局 LISTEN_CONNECTION_MAX 设置,则会被忽略。
(字符串,"INADDR_ANY" 或点分十进制 IP 地址)侦听入站 SMPP 客户机连接是否启用的网络接口的 IP 地址。可以是字符串 "INADDR_ANY"(所有可用的接口)或是点分十进制形式的 IP 地址。(例如 193.168.100.1。)默认值为 "INADDR_ANY"。
(整数,TCP 端口号)为接受入站 SMPP 客户机连接而绑定的 TCP 端口。必须指定此选项;此选项没有默认值。请注意,没有为此服务指定的 IANA。
(整数,秒数 > 0)等待从 SMPP 客户机读取数据时所允许的超时。默认值为 600 秒(10 分钟)。
(整数,秒数 > 0)将数据发送至 SMPP 客户机时所允许的超时。默认值为 120 秒(2 分钟)。
可能没有或有多个网关配置文件。在 SMS Gateway Sever 的配置文件中,每个网关配置文件都在选项组中进行声明,格式如下:
[GATEWAY_PROFILE=profile-name] option-name-1=option-value-1 option-name-2=option-value-2 ... option-name-n=option-value-n |
字符串 profile-name 仅用于将该配置文件与其他原始配置文件区分开。
表 D–24 列出了 SMS Gateway Server 配置文件选项。
表 D–24 SMS Gateway Server 配置文件选项
选项 |
默认值 |
说明 |
---|---|---|
sms |
用于对消息进行排入的通道 |
|
US-ASCII |
电子邮件消息主体字符集 |
|
US-ASCII |
电子邮件消息标题字符集 |
|
|
用于将电子邮件路由回 SMS 的域名 |
|
|
用于解析 SMS 消息文本的正则表达式 |
|
GSM |
在以下系统中运行的 SMS 配置文件:GSM、TDMA 或 CDMA |
|
|
用于选择插件的正则表达式 |
|
US-ASCII |
SMSC 的默认字符集 |
|
0 |
Gateway SMS 的电子邮件优先级标志 |
|
0 |
Gateway SMS 的电子邮件保密性指示符 |
(字符串,1 至 40 个字符)用于将电子邮件消息加入队列的 MTA 通道的名称。如果未指定,则假定为 "sms"。指定的通道必须在 MTA 的配置中定义。
(字符串,字符集名称)用于在 SMS 文本插入到电子邮件消息的正文之前转换 SMS 文本的字符集。如果有必要,将对已转换的文本进行 MIME 编码。默认值为 US-ASCII。如果 SMS 消息包含字符集中所没有的符号,这些符号将被转换为助记字符,转换后的字符对收件人可能有意义,也可能没有。
MTA 认可的字符集的列表可在以下文件中找到:
installation-directory/config/charsets.txt
(字符串,字符集名称)用于在 SMS 文本插入到 RFC 822 Subject: 标题行之前转换 SMS 文本的字符集。如果有必要,将对已转换的字符串进行 MIME 编码。默认值为 US-ASCII。如果 SMS 消息包含字符集中所没有的符号,这些符号将被转换为助记字符,转换后的字符对收件人可能有也可能没有意义
(字符串,IP 主机名,1 至 64 个字符)构建电子邮件消息的信封 From: 地址时,要附加至 SMS 源地址的域名。指定的主机名应是能将电子邮件路由回 SMS 的正确名称。(例如,与 MTA SMS 通道相关联的主机名。)如果未指定,则将使用通过 CHANNEL 选项指定的通道的正式主机名。
(字符串,UTF-8 正则表达式)对于移动设备始发的电子邮件,网关配置文件需要从 SMS 消息的文本中提取目标电子邮件地址。此操作是通过一个或多个 POSIX 兼容的正则表达式 (RE) 来实现的。每个正则表达式都将计算 SMS 消息的文本,直到找到一个生成目标电子邮件地址的匹配项或正规表达式的列表用完为止。
PARSE_RE_* 和 ROUTE_TO 选项互斥。在同一网关配置文件中同时使用这两个选项将导致配置错误。
每个正则表达式都必须是 POSIX 兼容的,而且必须使用 UTF-8 字符集编码。正则表达式必须以字符串 0 的形式输出目标地址。它们可以选择性地输出在 Subject: 标题行中用作字符串 1 的文本,以及在消息正文中用作字符串 2 的文本。任何未被正则表达式“消耗的”文本还可在消息正文中使用,其后跟的任何文本输出用作字符串 2 。
正则表达式的尝试顺序为 PARSE_RE_0、PARSE_RE_1、...,直至 PARSE_RE_9。如果没有指定任何正则表达式,则使用以下默认正则表达式:
[ \t]*([^\( ]*)[ \t]*(?:\(([^\)]*\))?[ \t]*(.*)
这个默认正则表达式可分为以下几个成分:
[ \t]*
忽略前导空格字符(SPACE 和 TAB)。
([^\( ]*)
目标电子邮件地址。这是首先报告的字符串。
[ \t]*
忽略空格字符。
(?:\(([^\)]*)$1\))?
包含在括号中的可选主题文本。这是第二次报告的字符串。前导 ?: 可使外围括号不报告字符串。它们仅用于将其内容一起编组到一个后缀为 ? 的单一 RE 中。后缀 ? 使此 RE 组件仅匹配零或一次,等效于表达式 {0,1}。
[ \t]*
忽略空格字符。
(.*)
消息主体的其余文本。这是第三次报告的字符串。
例如,对于上述正则表达式,SMS 消息样例:
dan@sesta.com(Testing)This is a test
将产生电子邮件消息:
To: dan@sesta.com Subject: Testing |
This is a test
另一个示例,SMS 消息:
sue@sesta.com This is another test
将产生:
To: sue@sesta.com
This is another test
请注意,在用这些正则表达式进行计算之前,SMS 消息将被转换为统一字符编码的 UTF-16 编码。然后,转换的文本将使用先前从 UTF-8 转换为 UTF-16 的正则表达式进行评估。之后,评估结果将转换为针对目标电子邮件地址的 US-ASCII、针对 Subject: 文本的 EMAIL_HEADER_CHARSET(如果有)以及针对邮件正文的 EMAIL_BODY_CHARSET(如果有)。
(字符串,"GSM"、"TDMA" 或 "CDMA")假定的 SMS 配置文件。目前此信息只用于将 SMS 优先级标志映射至 RFC 822 Priority: 标题行。因此,当 USE_SMS_PRIORITY=0(该选项的默认设置)时,此选项不生效。
(字符串,US-ASCII 正则表达式)用于与每条 SMS 消息的 SMS 目标地址进行比较的 US-ASCII POSIX 兼容正则表达式。如果某条 SMS 消息的目标地址与此 RE 相匹配,则此 SMS 消息将通过网关发送至与此网关配置文件相一致的电子邮件中。
请注意,由于 SMS 消息的目标地址是以 US-ASCII 字符集指定的,因此此正则表达式也必须以 US-ASCII 表示。
(字符串,字符集名称)远程 SMSC 所使用的默认字符集的名称。此选项的两个通用选项为 US-ASCII 和 UTF-16-BE (USC2)。如果未指定,则假设为 US-ASCII。
(整数,0 或 1)默认情况下(使用 USE_SMS_PRIORITY=0),SMS 消息中的优先级标志将被忽略,且不与电子邮件消息一起发送。要与电子邮件一起传送优先级标志,请指定 USE_SMS_PRIORITY=1。表 D–25 显示了与电子邮件一起传送时,从 SMS 至电子邮件的映射:
表 D–25 从 SMS 到电子邮件的优先级标志映射
SMS 配置文件 |
SMS 优先级标志 |
电子邮件 Priority: 标题行 |
---|---|---|
GSM |
0(无优先级) 1, 2, 3(优先级) |
无标题行(表示 Normal) Urgent |
TDMA |
0(批量) 1(普通) 2(紧急) 3(非常紧急) |
Nonurgent 无标题行(表示 Normal) Urgent Urgent |
CDMA |
0(普通) 1(交互) 2(紧急) 3(紧急) |
无标题行(表示 Normal) Urgent Urgent Urgent |
请注意,电子邮件 Priority: 标题行的值为 Nonurgent、Normal 和 Urgent。
(整数,0 或 1)默认情况下(使用 USE_SMS_PRIVACY=0),SMS 保密性指标将被忽略,且不与电子邮件消息一起发送。要将此信息与电子邮件一起传送,请指定 USE_SMS_PRIVACY=1。表 D–26 显示了与电子邮件一起传送时,从 SMS 至电子邮件的映射:
表 D–26 从 SMS 到电子邮件的优先级标志映射
SMS 保密性标志 |
电子邮件 Sensitivity: 标题行 |
---|---|
0(无限制) |
无标题行 |
1(限制) |
Personal |
2(机密) |
Private |
3(秘密) |
Company-confidential |
请注意,电子邮件 Sensitivity: 标题行的值为 Personal、Private 和 Company-confidential。
行为假设
在方便解释此示例,假设需要以下性能:
定址到
sms-id@sms.domain.com
的电子邮件消息要发送到 SMS 地址
sms-id
并给定唯一的 SMS 源地址,范围为 000nnnnnnnnnn。
定址至 SMS 地址 000 的移动设备 SMS 消息将通过网关发送至电子邮件(带有从 SMS 消息文本开始处提取的电子邮件地址)。
例如,如果 SMS 消息文本为:
jdoe@domain.com Interested in a movie?
则消息 "Interested in a movie?" 将被发送至 jdoe@domain.com。
发送至 000nnnnnnnnnn 的 SMS 通知将通过网关发送至电子邮件,并定向至接收该消息的创始者。
为了实现此性能,需要进行如下假设和指定
进一步假设和指定
MTA 的 SMS 通道使用域名 sms.domain.com。
SMS Gateway Server 在主机 gateway.domain.com 上运行并将:
TCP 端口 503 用于其 SMPP 中继
TCP 端口 504 用于其 SMPP 服务器
远程 SMSC 的 SMPP 服务器在主机 smpp.domain.com 上运行并侦听 TCP 端口 377。
远程 SMSC 的默认字符集为 UCS2(也可为 UTF-16)。
SMS 通道配置
要使上述行为生效,可以在 imta.cnf 文件中使用以下 SMS 通道配置(将这些行添加至文件底部):
(blank line) sms sms.domain.com
SMS 通道选项文件
然后,通道的选项文件 sms_option 将包含以下设置:
SMPP_SERVER=gateway.domain.com SMPP_PORT=503 USE_HEADER_FROM=0 DEFAULT_SOURCE_ADDRESS=000 GATEWAY_PROFILE=sms1 SMSC_DEFAULT_CHARSET=UCS2
SMS Gateway Server 配置
最后,Gateway Server 配置文件 sms_gateway.cnf 应包含类似以下内容:
HISTORY_FILE_DIRECTORY=/sms_gateway_cache/ [SMPP_RELAY=relay1] LISTEN_PORT=503SERVER_HOST=smpp.domain.com SERVER_PORT=377 [SMPP_SERVER=server1] LISTEN_PORT=504 [GATEWAY_PROFILE=sms1] SELECT_RE=000([0-9]{10,10}){0,1} SMSC_DEFAULT_CHARSET=UCS2 |
测试此配置
如果没有可用于测试的 SMSC,您可能需要执行某些回送测试。使用 sms_option 文件中的某些附加设置,可对上述配置执行某些简单的回送测试。
sms_option 文件的附加设置包括:
! So that we don’t add text to the body of the SMS message FROM_FORMAT= SUBJECT_FORMAT= CONTENT_PREFIX=
没有这些设置,包含以下内容:
user@domain.com (Sample subject) Sample text
的电子邮件就会转换成 SMS 消息:
From:user@domain.com Subject:Sample Subject Msg:Sample text
反过来,这将不会是移动设备到电子邮件代码所期望看到的格式:
user@domain.com (Sample subject) Sample text
因此,需要(针对回送测试)为 FROM_FORMAT、SUBJECT_FORMAT 和 CONTENT_PREFIX 选项指定空字符串。
发送定址至 000@sms.domain.com 的测试电子邮件消息,例如:
user@domain.com (Test message) This is a test message which should loop back
结果是此电子邮件消息应路由回电子邮件收件人 user@domain.com。请确保已将 sms.domain.com 添加至您的 DNS 或主机表中,以进行测试。