Calendar Server は、「Calendar Server のメールパラメータ」で説明している各種電子メールメッセージを送信します。これらのメッセージの形式は、表に示されるフォーマットファイル (.fmt) によって制御されます。フォーマットファイルは、次のディレクトリ内の各ロケールのディレクトリ (英語であれば /en、フランス語であれば /fr など) に格納されています。
/etc/opt/SUNWics5/config
たとえば、英語バージョンの作業 (仕事) アラームメッセージの形式は、次のファイルに指定されています。
/etc/opt/SUNWics5/config/en/mail_todoalarm.fmt
ここで説明する内容は次のとおりです。
次の表は、Calendar Server の各メールパラメータのメッセージタイプ、パラメータ名、デフォルトフォーマットファイル、説明、受信者を示しています。
表 E–30 ics.conf ファイルの Calendar Server 電子メールフォーマットパラメータ
メッセージタイプ |
パラメータ |
フォーマットファイル (デフォルト) |
説明 |
受信者 |
---|---|---|---|---|
予定の公開 |
予定の公開、または既存予定の変更を通知します。 |
通知登録ユーザー |
||
予定の取り消し |
予定の取り消しを通知します。 |
通知登録ユーザー |
||
予定への返信 |
"mail_eventreply.fmt" |
予定通知に返信します。 |
通知登録ユーザー |
|
予定の要求 |
"mail_eventrequest.fmt" |
予定通知に登録します。 |
通知登録ユーザー |
|
予定アラーム |
次の予定のアラーム。 |
アラーム登録ユーザー |
||
定期的な予定の通知 |
“mail_eventnotificationrecur.fmt” |
定期的な予定の通知。 |
通知登録ユーザー |
|
予定の取り消し通知 |
“mail_eventcancel notification.fmt” |
取り消された予定の通知。 |
通知登録ユーザー |
|
定期的な予定の取り消しの通知 |
“mail_eventcancelnotificationrecur.fmt” |
取り消された定期的な予定の通知。 |
通知登録ユーザー |
|
作業の公開 |
作業または既存作業の変更を通知します。 |
通知登録ユーザー |
||
作業の取り消し |
作業の取り消しを通知します。 |
通知登録ユーザー |
||
作業への返信 |
"mail_todoreply.fmt" |
作業通知に返信します。 |
通知登録ユーザー |
|
仕事の要求 |
"mail_todorequest.fmt" |
仕事通知に登録します。 |
通知登録ユーザー |
|
作業アラーム |
次の作業のアラーム。 |
アラーム登録ユーザー |
Calendar Server は、特定の予定または作業を組み合わせ、フォーマットファイルに基づいて通知メッセージを生成します。予定または作業内のデータフィールドの値は、メッセージに出力することができます。通知メッセージには、MIME ヘッダー行と関連する特殊値を含めることもできます。特殊文字列 (フォーマット表記) を使用することで、予定、作業、MIME ヘッダーの値をメッセージに含めることができます。フォーマットファイル内の行は、メールメッセージの生成時にカレンダデータフィールドからの実際の値に置き換えられる特殊文字列から構成されます。特殊文字列には 2 つの文字が含まれます。 1 つはパーセント記号 (%) で、もう 1 つの文字は特別なフォーマット表記を表します。
次に、これらの特殊文字列について説明します。
次の表は、フォーマットコードと、予定通知用の特殊文字列の意味を示しています。
表 E–31 予定通知用の特殊文字列
フォーマットコード |
意味 |
---|---|
%0 |
ローカライズされたフォーマットでの開始時刻 |
%1 |
ローカライズされたフォーマットでの終了時刻 |
%A |
iCalendar 形式の exdates (除外する日付をセミコロンで区切ったリスト形式の ISO 8601 日付文字列) |
%a |
iCalendar 形式の rdates (予定日付をセミコロンで区切ったリスト形式の ISO 8601 日付文字列) |
%B |
開始時刻 (%Z も参照) |
%b |
開始時刻と終了時刻を iCalendar 形式で出力します。開始時刻のパラメータが value=date という形式であれば、日付の月 / 日 / 年の部分だけが出力されます。終了時刻の月 / 日 / 年の値が開始時刻と等しい場合は、開始時刻だけが生成されます。 |
%C |
作成時刻 |
%c |
予定クラス |
%d |
予定の説明 (%F も参照) |
%E |
終了時刻 (%Z も参照) |
%e |
iCalendar 形式の例外規則 |
%F |
予定の説明、iCalendar 形式の折り返し行 (%d も参照) |
%G |
予定の地理的な場所 (緯度と経度) |
%g |
企画者の電子メールアドレス。この値の信頼性は保証されません。 |
%K |
企画者の mailto: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 |
ただし、上の例には不正確な結果を招く 2 つの条件があります。
予定の終了時刻が指定されていない
予定が「終日」予定であるため、開始と終了が同じ日になる
このような状況では、終了時刻を一切出力しない方法が最適です。デフォルトでは、タイムスタンプが 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 |
現在 (DTSTAMP で使用される現在のタイムスタンプ) |
%P |
優先度 |
%r |
定期予定 ID (この作業が繰り返し作業でない場合は空白) |
%S |
作業のシーケンス番号 |
%s |
概要 |
%t |
状態 |
%U |
UID |
%Z |
時刻フィールドコードと組み合わせて使用され、UTC 時間で時間を表示します (%B は開始時刻を現地時間で表示し、%ZB は開始時刻を UTC 時間で表示する) |
%% |
% 記号を通常文字として表示します |
% (サブフォーマットコード) |
コードによって識別されるデータのサブフォーマットを指定します (詳細は、「日付のサブフォーマット」を参照) |
次の表は、フォーマットコードと、日付用の特殊文字列の意味を示しています。
ここに示す特別な日付フォーマットコードは、利便性だけを目的に紹介されています。Calendar Server がコードを書き換えるわけではなく、実際にはオペレーティングシステムに実装されているものが使用されます。
フォーマットコード |
意味 |
---|---|
%a |
曜日の略号表記 |
%A |
曜日の完全表記 |
%b |
月名の略号表記 |
%B |
月名の完全表記 |
%c |
ロケールに基づいて表示される日時 |
%d |
月の日付の 10 進表記 (01 〜 31) |
%H |
時間の 24 時間制表記 (00 〜 23) |
%I |
時間の 12 時間制表記 (01 〜 12) |
%j |
年の日付の 10 進表記 (001 〜 336) |
%m |
月の 10 進表記 (01 〜 12) |
%M |
分の 10 進表記 (00 〜 59) |
%p |
12 時間制表記用の、現在のロケールの A.M./P.M. |
%S |
秒の 10 進表記 (00 〜 59) |
%U |
日曜日を週の先頭とした場合の年初からの週数 (00 〜 53) |
%w |
曜日の 10 進表記 (0 〜 6、日曜日が 0) |
%W |
月曜日を週の先頭とした場合の年初からの週数 (00 〜 53) |
%x |
現在のロケールの日付表記 |
%X |
現在のロケールの時刻表記 |
%y |
世紀部分を含まない年の 10 進表記 (00 〜 99) |
%Y |
世紀部分を含む年の 10 進表記 |
%Z |
タイムゾーンの名前または略号、タイムゾーンが不明の場合は何も出力されません |
%% |
パーセント記号 |
次の例は、デフォルトの予定アラームメッセージのフォーマットを示しています。
1 EVENT REMINDER 2 ~~MIME-Version: 1.0%N 3 ~~Content-Type: text/plain; charset=%s%N 4 ~~Content-Transfer-Encoding: %x%N%N 5 Summary: %s%N 6 Start: %(%a, %d %b %Y %I:%M %p)B%N 7 End: (%a, %d %b %Y %I:%M %p)E%N 8 Location: %L%N%N 9 Description: %N%d%N |
この例の各行について説明します。
行 1 は、メッセージの件名です。
行 2 は ~~ から始まります。 これは、MIME 折り返し行を示しています。つまり、特殊文字列に置き換えられるのは、予定または作業ではなく、内部 MIME オブジェクトに関連する情報です。特殊文字列 %N は改行を表します。件名の行は特殊文字列による改行を必要としませんが、その他すべての行では必要です。
行 3 も MIME ヘッダー行です。ここには、特殊文字列 %s が含まれます。 これは、メール送信の対象となる予定または作業に関連付けられた文字セットに置き換えられます。
行 4 は MIME ヘッダーの最終行です。 %x は、このメッセージに必要なコンテンツ転送用のエンコード文字列です。
行 5 では、%s によって予定の概要が呼び出されます。
行 6 には予定の開始時刻が表示されます。これは、特殊文字列 %B のサブフォーマット文字列を使用しています。詳細は、「日付のサブフォーマット」を参照してください。
行 7 には予定の終了時刻が表示されます。
行 8 には予定の場所が表示されます。
行 9 には予定の説明が表示されます。
次の例は、上の例から生成される通知メッセージのサンプルを示しています。
From: jsmith@sesta.com (James Smith) Date: Wed, 15 Nov 1999 19:13:49 To: jsmith@sesta.com Subject: EVENT REMINDER MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Summary: smtp_rig event 1 Start: Tues, 16 Nov 1999 02:00 PM End: Tues, 16 Nov 1999 03:00 PM Location: Green Conference Room Description: This is the description for a randomly generated event. |
次の例は、より複雑な複数部分から構成されるメッセージを示しています。この例には、テキスト部分と IMIP PUBLISH 部分が含まれます。
EVENT PUBLICATION ~~MIME-Version: 1.0%N ~~Content-Type: multipart/mixed; boundary="%b"%N%N This is a multi-part message in MIME format.%N ~~--%b%N ~~Content-Type: text/plain; charset=%s%N ~~Content-Transfer-Encoding: %x%N%N Summary: %s%N Start: %(%a, %d %b %Y %I:%M %p)B%N End: %(%a, %d %b %Y %I:%M %p)E%N Location: %L%N%N Description: %N%d%N%N ~~--%b%N ~~Content-Type: text/calendar; method=%m; component=%c; charset=%s%N ~~Content-Transfer-Encoding: %x%N%N BEGIN:VCALENDAR%N PRODID:-//iPlanet/Calendar Hosting Server//EN%N METHOD:PUBLISH%N VERSION:2.0%N BEGIN:VEVENT%N ORGANIZER:%K%N DTSTAMP:%Zn%N DTSTART:%ZB%N DTEND:%ZE%N SUMMARY:%s%N UID:%U%N %R %A %a %e %l SEQUENCE:%S%N LOCATION:%L%N GEO:%G%N %F STATUS:%t%N END:VEVENT%N END:VCALENDAR%N ~~--%b-- |