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

通知消息

Calendar Server 邮件参数中介绍了 Calendar Server 发送的电子邮件消息类型。这些消息的格式由表中所列出的关联格式文件 (.fmt) 决定。这些格式文件位于每个语言环境的特定目录中(如英文为 /en,法文为 /fr),如下所示:

/etc/opt/SUNWics5/config

例如,任务(待办事件)警报消息格式的英文版在下面的文件中指定:

/etc/opt/SUNWics5/config/en/mail_todoalarm.fmt

本节包括以下内容:

Calendar Server 邮件参数

下表显示了每个 Calendar Server 邮件参数的消息类型、参数名称、默认格式文件说明以及收件人。

表 E–30 ics.conf 文件中的 Calendar Server 电子邮件格式

消息类型 

参数 

格式文件(默认) 

说明 

收件人 

发布事件 

calmail.imipeventpublish.fname

"mail_eventpublish.fmt"

宣布事件或对现有事件的更改 

在通知中列出的收件人 

取消事件 

calmail.imipeventcancel.fname

"mail_eventcancel.fmt"

宣布取消事件 

在通知中列出的收件人 

回复事件 

calmail.imipeventreply.fname

mail_eventreply.fmt 

回复事件通知。 

在通知中列出的收件人 

请求事件 

calmail.imipeventrequest.fname

"mail_eventrequest.fmt" 

订阅事件通知。 

在通知中列出的收件人 

事件警报 

calmail.eventreminder.fname

"mail_eventreminder.fmt"

即将举行的事件的提醒通知 

在提醒通知中列出的收件人 

重复性事件通知 

calmail. imipeventnotificationrecur. fname

"mail_eventnotificationrecur .fmt" 

通知重复性事件 

在通知中列出的收件人 

事件取消通知 

calmail. imipeventcancelnotification. fname

"mail_eventcancel notification.fmt" 

通知取消的事件 

在通知中列出的收件人 

重复性事件取消通知 

calmail. imipeventcancelnotificationrecur. fname

"mail_ eventcancelnotification recur.fmt" 

通知取消的重复性事件 

在通知中列出的收件人 

发布任务 

calmail.imiptodopublish.fname

"mail_todopublish.fmt"

宣布任务或对现有任务的更改 

在通知中列出的收件人 

取消任务 

calmail.imiptodocancel.fname

"mail_todocancel.fmt"

宣布取消任务 

在通知中列出的收件人 

回复任务 

calmail.imiptodoreply.fname

"mail_todoreply.fmt" 

回复任务通知 

在通知中列出的收件人 

待办事件请求 

calmail.imiptodorequest.fname

"mail_todorequest.fmt" 

订阅待办事件通知。 

在通知中列出的收件人 

任务警报 

calmail.todoreminder.fname

"mail_todoreminder.fmt"

即将举行的任务的提醒通知 

在提醒通知中列出的收件人 

Calendar Server 通过将特定事件或任务与格式文件的内容合并起来生成通知消息。可以将事件或任务中的数据字段值输出到消息中。通知消息中也可以包括 MIME 标头行以及关联的特殊值。使用特殊字符序列(格式表示法),可以在消息中包括事件、任务和 MIME 标头的值。格式文件中的行都是由特殊字符序列组成的格式字符串,其中的字符序列会在生成邮件消息时替换为日历数据字段的实际值。特殊字符序列由两个字符组成,第一个字符是百分号 (%),第二个字符代表特定的格式表示法。

以下各节介绍特殊字符序列:

事件的特殊字符序列

下表显示了事件通知的特殊字符序列的格式代码和含义。

表 E–31 事件通知的特殊字符序列

格式代码 

含义 

%0 

本地化格式的开始时间 

%1 

本地化格式的结束时间 

%A 

iCalendar 格式中的 exdates(以分号分隔的 ISO 8601 日期字符串列表,列出要排除的日期) 

%a 

iCalendar 格式中的 rdates(以分号分隔的 ISO 8601 日期字符串列表,列出周期性日期) 

%B 

开始时间(请参见 %Z) 

%b 

以 iCalendar 格式输出开始时间和结束时间。如果开始时间的参数为 value=date,则只输出日期的 month/day/year 部分。如果结束时间和开始时间的 month/day/year 值相同,则仅生成开始时间。 

%C 

创建时间 

%c 

事件类 

%d 

事件说明(请参见 %F) 

%E 

结束时间(请参见 %Z) 

%e 

iCalendar 格式中的例外规则 

%F 

事件说明- - 换行/iCalendar 格式(请参见 %d) 

%G 

事件的地理位置(包括维度和经度) 

%g 

组织者的电子邮件地址。(不能保证此值的真实性。) 

%K 

以 mailto:url 形式表示的组织者的电子邮件url 

%k 

警报计数 

%L 

地点 

%l 

iCalendar 格式中的周期规则 

%M 

修改时间 

%N 

新行 

%n 

DTSTAMP 一起使用的当前时间戳

%P 

优先级 

%r 

周期 ID(如果此事件没有重复发生,则为空) 

%S 

事件序列号 

%s 

汇总 

%t 

事件状态 

%U 

唯一事件标识符 

%Z 

与时间字段代码一起使用,强制以 UTC 时间格式显示时间。(%B 以当地时间显示开始时间,而 %ZB 以 UTC 时间显示开始时间。) 

%% 

显示百分号 (%) 

%(子格式代码) 

指定由代码标识的数据的子格式。(有关详细信息,请参见日期的子格式。)

日期的子格式

可以多种不同的方法格式化日期时间值。使用子格式可以提供附加信息,以说明如何格式化日期时间值。如果不指定子格式,服务器将使用默认格式输出日期。使用子格式字段可以指定要使用的精确格式。

例如,%B 指定在输出字符串中包括事件的开始时间。此默认格式将打印日期、时间、时区以及有关该日期的其他可能的信息。日期值的子格式字符串是 strftime 格式的字符串(请参见日期的特殊字符序列)。如果只需要了解开始时间的年和月,请不要使用 %B而应使用:%(%m %Y)B

示例

以下示例:


The event begins: %B%N
 The event ends: %(%b %d, %Y %I:%M %p)E%N

生成与以下通知类似的输出:


The event begins Feb 02, 1999 23:30:00 GMT Standard Time
 The event ends Feb 03, 1999 02:30 AM

条件打印

有时候,只有在某些情况下才需要打印某一行。例如,以下行:


title: %S%N
 start: %B%N
 end: %E%N  

生成与以下通知类似的输出:


title: Staff Meeting
 start: Feb 04, 1999 09:00:00
 end: Feb 04, 1999 10:00:00 

但如果以下两个条件成立,以上示例将生成易误解或不正确的结果:

在这些情况下,最好不要打印结束时间。默认情况下,如果时间戳的属性为 all-day,则只打印年、月和日。此外,如果事件的开始时间有一个 all-day 属性,且事件的结束日期和开始日期为同一天,则会设置一个特殊的条件标记。只应在没有设置特殊条件标记时使用 ? 修饰符打印条件值。

例如,如果将上述示例中的行更改为:


title: %S%N
 start: %B%N
 end: %?E%N 

则不会打印“全天”事件的最后一行,因为这种事件的开始日期与结束日期相同。为典型的“全天”事件(如生日或周年纪念日)生成的输出如下:


title: Staff Meeting
 start: Feb 04, 1999

? 标记可与其他修饰符结合使用。例如:

The event ends: %?(%b %d, %Y %I:%M %p)E%N

任务通知的特殊字符序列

下表显示了任务通知的特殊字符序列的格式代码和含义。

表 E–32 任务通知的特殊字符序列

格式代码 

含义 

%A

iCalendar 格式中的 exdates(以分号分隔的 ISO 8601 日期字符串列表,列出要排除的日期)

%a

iCalendar 格式中的 rdates(以分号分隔的 ISO 8601 日期字符串列表,列出周期性日期)

%B

开始时间(另请参见 %Z

%C

创建时间 

%c

任务类 

%D

到期日期和时间 

%d

任务说明(另请参见 %F

%E

IMIP 格式的到期日期和时间 

%e

iCalendar 格式中的例外规则 

%F

任务说明—换行、iCalendar 格式(另请参见 %d

%G

此任务的地理位置(包括维度和经度) 

%g

组织者的电子邮件地址(不能保证此值的真实性) 

%K

mailto:URL 形式表示的组织者的电子邮件

%k

警报计数 

%L

位置 

%l

iCalendar 格式中的周期规则 

%M

修改时间 

%N

新行 

%n

"now"(当前时间戳,与 DTSTAMP 一起使用)

%P

优先级 

%r

周期 ID(如果此任务没有重复发生,则为空) 

%S

是任务的序列号 

%s

摘要 

%t

状态 

%U

UID

%Z

与时间字段代码一起使用,强制以 UTC 时间格式显示时间(%B 以当地时间显示开始时间,而 %ZB 以 UTC 时间显示开始时间)

%%

显示 % 字符

%(子格式代码)

指定由代码标识的数据的子格式(有关详细信息,请参见日期的子格式

日期的特殊字符序列

下表显示了日期的特殊字符序列的格式代码和含义。


注 –

仅为方便起见,才在本节列出特殊的日期格式代码。Calendar Server 不会重新编写任何代码,只是使用操作系统实现。


表 E–33 日期的特殊字符序列

格式代码 

含义 

%a

缩写的工作日名称 

%A

完整的工作日名称 

%b

缩写的月份名称 

%B

完整的月份名称 

%c

语言环境特定的日期和时间表示 

%d

以十进制数表示的月份中的日期 (01 - 31)

%H

以 24 小时格式表示的小时 (00 - 23)

%I

以 12 小时格式表示的小时 (01 - 12)

%j

以十进制数表示的一年中的日期 (001 - 366)

%m

以十进制数表示的月份 (01 - 12)

%M

以十进制数表示的分钟 (00 - 59)

%p

以 12 小时格式表示的当前语言环境的 A.M./P.M. 指示器 

%S

以十进制数表示的秒 (00 - 59)

%U

以十进制数表示的一年中的周,其中星期日作为一周的第一天 (00 - 53)

%w

以十进制数表示的工作日(0 - 6;星期日为 0

%W

以十进制数表示的一年中的周,其中星期一作为一周的第一天 (00 - 53)

%x

当前语言环境的日期表示 

%X

当前语言环境的时间表示 

%y

以十进制数表示的不带世纪的年份 (00 - 99)

%Y

以十进制数表示的带世纪的年份 

%Z

时区名称或缩写,如果时区未知,则无字符 

%%

百分号 

简单的事件提醒通知示例

以下示例显示了默认事件提醒通知消息的格式:


1  事件提醒通知
 2  ~~MIME 版本: 1.0%N
 3  ~~内容类型: text/plain; charset=%s%N
 4  ~~内容传输编码: %x%N%N
 5      摘要: %s%N
 6        开始时间: %(%a, %d %b %Y %I:%M %p)B%N
 7        结束时间: (%a, %d %b %Y %I:%M %p)E%N
 8      地点: %L%N%N
 9  说明: %N%d%N

         

本示例中每一行的说明如下:

下面的样例与以上示例生成的通知消息类似:


自: jsmith@sesta.com (James Smith)
 日期: 1999 年 11 月 15 日星期三 19:13:49
 到: jsmith@sesta.com
 主题: 时间提醒通知
 MIME 版本: 1.0
 内容类型: text/plain; charset=us-ascii
 内容传输编码: 7 位
   摘要: smtp_rig 事件 1
       开始时间: 1999 年 11 月 16 日星期二 02:00 PM
       结束时间: 1999 年 11 月 16 日星期二 03:00 PM
   地点: 格林会议室
   说明: 这是偶然生成的事件的说明。

复杂的事件提醒通知示例

以下示例显示了更复杂的、由多部分组成的消息。此示例包括一个文本部分和一个 IMIP PUBLISH 部分。


事件发布
 ~~MIME 版本: 1.0%N
 ~~内容类型: multipart/mixed; boundary="%b"%N%N
 这是 MIME 格式的多部分消息。%N
 ~~--%b%N
 ~~内容类型: text/plain; charset=%s%N
 ~~内容传输编码: %x%N%N
     摘要: %s%N
       开始时间: %(%a, %d %b %Y %I:%M %p)B%N
       结束时间: %(%a, %d %b %Y %I:%M %p)E%N
     地点: %L%N%N
    说明: %N%d%N%N
 ~~--%b%N
 ~~内容类型: text/calendar; method=%m; component=%c; charset=%s%N
 ~~内容传输编码: %x%N%N
 开始:VCALENDAR%N
时间长度:-//iPlanet/Calendar Hosting Server//EN%N
 方法:PUBLISH%N
 版本:2.0%N
 开始:VEVENT%N
 组织者:%K%N
 时间戳:%Zn%N
 开始时间:%ZB%N
 结束时间:%ZE%N
 摘要:%s%N
UID:%U%N
 %R
 %A
 %a
 %e
 %l
 序列:%S%N
 地点:%L%N
 GEO:%G%N
 %F
 状态:%t%N
 结束:VEVENT%N
 结束:VCALENDAR%N
 ~~--%b--