説明
Microsoft Exchange のカレンダーイベントの作成、削除、変更、取得、およびカレンダーイベントへの応答を行います。また、カレンダーイベントの添付ファイルを取得します。
履歴
- ColdFusion(2023 リリース)アップデート 5:username、password および server 属性が追加されました。
- ColdFusion(2018 リリース):action="create" のオプション属性 timeZone が追加されました。
- ColdFusion 11:cfexchangecalendar タグに、セカンダリカレンダーを管理するための新しいオプション属性が 3 つ追加されました。これらの属性は get アクションと create アクションにのみ適用でき、2010 以降のバージョンの Exchange Server で使用できます。 セカンダリカレンダーは、exchangecalendar タグでセカンダリカレンダーフォルダーの ID またはパスを使用して指定できます。
- ColdFusion 10:getUserAvailability、getRooms、getRoomsList
- serverVersion 属性が追加されました。
- serverVersion 属性が追加されました。
- ColdFusion 8:このタグが追加されました。
カテゴリ
シンタックス
<cfexchangecalendar timeZone=“Time Zone for the event”>
|
メモ:いずれのアクションに関しても、connection 属性を指定しない場合に使用するその他の属性については、cfexchangeconnection を参照してください。connection 属性を省略する場合は、cfexchangecalendar タグで cfexchangeconnection タグの属性を指定して一時的な接続を作成します。この場合、ColdFusion はタグが完了すると接続を閉じます。詳しくは、cfexchangeconnection タグの open アクションを参照してください。 |
メモ:このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。 |
関連項目
cfexchangeconnection、cfexchangecontact、cfexchangefilter、cfexchangemail、cfexchangetask、『ColdFusion アプリケーションの開発』の会議および予定の操作
属性
属性 |
アクション |
必須/オプション |
デフォルト |
説明 |
---|---|---|---|---|
action |
N/A |
必須 |
|
実行するアクションです。有効な値は次のとおりです。
|
username | すべて | オプション | Exchange のユーザー ID です。 | |
password | すべて | オプション | Exchange サーバーへのアクセスに使用するパスワードです。 |
|
server | すべて | オプション | Exchange へのアクセスに使用するサーバーの IP アドレスまたは URL です。 | |
attachmentPath |
getAttachments |
オプション |
|
添付ファイルを保存する、ディスク上またはメモリ内のディレクトリのファイルパスです。指定したディスク上のディレクトリが存在しない場合は、自動的に作成されます。 |
attendees |
getUserAvailability |
必須 |
|
すべての出席者のコンマ区切りリストです。 |
connection |
すべて |
オプション |
|
cfexchangeconnection タグで指定された Exchange サーバーへの接続の名前です。この属性を省略する場合は、cfexchangecalendar タグで cfexchangeconnection タグの接続属性を指定して一時的な接続を作成する必要があります。 |
dataRequestType |
getUserAvailability |
必須 |
|
|
emailAddress |
getRooms |
オプション |
|
メールボックスユーザーの SMTP(Simple Mail Transfer Protocol)アドレスを定義します。 |
endDate |
getUserAvailability |
必須 |
|
ColdFusion が日付時刻値として解釈できる文字列です。 |
event |
createmodify |
必須 |
|
設定または変更するイベントプロパティとその値を含む構造体への参照です。この属性はシャープ記号(#)で囲んで指定する必要があります。event 属性でもカテゴリキーがサポートされます。 |
getOccurrence |
TrueFalse |
オプション |
|
True の場合、指定された startDate 値から EndDate 値までの繰り返しイベントのすべての発生と、さらに単独のイベントも取得します。getOccurrence を True に指定した場合、cfExchangeFilter タグは使用できません。 |
generateUnique Filenames |
getAttachments |
オプション |
no |
同じ名前の添付ファイルが複数ある場合に、一意のファイル名を生成するかどうかを指定するブール値です。同じ名前を持つ添付ファイルが複数存在し、このオプションが yes の場合、ColdFusion は、競合するファイル名の後ろ(拡張子の前)に番号を付加します。例えば、myfile.txt という名前の添付ファイルが 3 つある場合は、myfile.txt、myfile1.txt、myfile2.txt という名前で保存されます。 |
message |
deleterespond |
オプション |
|
応答通知または削除通知で送信するオプションメッセージのテキストです。 |
name |
getAttachments getUserAvailability getRoomsListgetRooms |
必須 |
|
取得したイベント、または取得した添付ファイルに関して取得した情報を格納する ColdFusion クエリ変数の名前です。返されるデータについて詳しくは、「使用方法」を参照してください。 |
notify |
deleterespond |
オプション |
true |
イベントが修正されたときに他のユーザーに通知するかどうかを指定するブール値です。 |
responseType |
respond |
必須 |
|
有効な値は次のとおりです。
|
result |
create |
オプション |
|
作成するイベントの UID を格納する変数の名前です。create 以外のアクションでは、uid 属性で UID 値を指定してアクションの対象となるイベントを識別します。 |
serverVersion |
|
オプション |
2007 |
Microsoft Exchange Server のバージョンを指定します。有効な値は次のとおりです。
|
startDate |
getUserAvailability |
必須 |
|
ColdFusion が日付時刻値として解釈できる文字列です。 |
uid |
delete getAttachments modify respond |
必須 |
|
アクションの対象となるイベントを一意に識別する Exchange UID 値です。大文字と小文字は区別されます。delete アクションの場合は、この属性で UID 値のコンマ区切りリストを指定できます。deleteAttachments、getAttachments、modify および respond アクションの場合は、1 つの UID 値のみを指定できます。 |
folderid | オプション | カレンダー項目を管理するカレンダーフォルダー ID を指定します。フォルダー ID が有効なカレンダーではない場合は、エラーが報告されます。 | ||
folderpath | オプション | メールボックスストア内のカレンダーフォルダーのフルパスです。パスの区切り文字もタグで指定できます。その際は、pathdelimiter 属性を使用します。 folderid と folderpath が両方とも指定されていない場合は、cfexchangecalendar タグによりデフォルトのユーザーカレンダーが管理されます。folderid と folderpath が両方とも指定されている場合は、folderid が考慮されます。 |
||
pathdelimiter | オプション | / | folderpath 属性内でフォルダーを区切る文字を指定できます。 |
使用方法
cfexchangecalendar タグは、Exchange サーバー上のカレンダーイベントを管理します。cfexchangecalendar を使用すると、次の操作を実行できます。
- 予定イベントまたは会議イベントを作成する。終日のイベントを作成する。
- イベントを削除する。
- 件名、送信者 ID、受信者 ID、受信時刻などのフィルタ条件に一致するイベントを取得する。
- 特定のイベントの添付ファイルを取得する。
- 既存のイベントを修正する。
イベントに応答する。
このタグを使用するには、Exchange サーバーに接続する必要があります。複数の連絡先レコードを作成する場合のように、Exchange サーバーとやり取りするタグを複数使用する場合は、cfexchangeconnection タグを使用して永続的な接続を作成します。その場合は、個々の cfexchangecalendar タグで接続識別子を指定します(タスク、連絡先、メールなどにもアクセスする場合はその他の ColdFusion Exchange タグでも接続識別子を指定します)。これにより、個々のタグに対して接続を作成して閉じる必要がなくなるので、システムの負荷が減少します。また、ColdFusion が 1 個の cfexchangecalendar タグを処理する間だけ存続する一時的な接続を作成することもできます。その場合は、cfexchangecontact タグで接続属性を直接指定します。接続属性について詳しくは、cfexchangeconnection タグを参照してください。メモ:Exchange カレンダーの予定を作成するには、カレンダーイベントを作成し、必須またはオプションのいずれの参加者も指定しません。
create アクション
create アクションを指定する場合は、イベントに関する情報を含む構造体を event 属性で指定する必要があります。この構造体には次のエントリを格納できます。
要素 |
デフォルト |
説明 |
---|---|---|
AllDayEvent |
no |
終日のイベントかどうかを示す boolean 値です。 |
Attachments |
|
添付ファイルとして送信するファイルのパスです。複数のファイルパスを指定する場合、Windows ではセミコロン(;)、UNIX および Linux ではコロン(:)を使用して各パスを区切ります。添付ファイルは絶対パスで指定する必要があります。 |
Categories |
|
カテゴリのコンマ区切りリストです。リスト内のすべてのカテゴリと一致するイベントが検索されます。 |
Duration |
|
イベントの継続時間です(単位:分)。 |
EndTime |
|
ColdFusion で有効な日付時刻形式で示されるイベントの終了時刻です。 |
Importance |
normal |
次のいずれかの値になります。
|
IsRecurring |
そのイベントが反復されるかどうかを示すブール値です。yes の場合は、RecurrenceType 要素と、反復の詳細を示す要素を指定します。反復フィールドについて詳しくは、次の表を参照してください。 |
|
Location |
|
イベントの場所を示す文字列です。 |
Message |
|
イベントに関するメッセージを含む文字列です。この文字列では HTML の形式設定タグも使用できます。 |
OptionalAttendees |
|
メール ID のコンマ区切りリストです。 |
Organizer |
|
会議の開催者の名前を示す文字列です。 |
Reminder |
|
イベントの何分前にアラームメッセージを表示するかを指定します。 |
RequiredAttendees |
|
メール ID のコンマ区切りリストです。 |
Resources |
|
Exchange スケジュールリソース(会議室や機材など)のメール ID のコンマ区切りリストです。 |
Sensitivity |
有効な値は、normal、company-confidential、personal および private です。 |
|
StartTime |
|
ColdFusion で有効な日付時刻形式で示されるイベントの開始時刻です。 |
Subject |
|
イベントの件名を示す文字列です。 |
IsRecurring フィールドの値を yes に設定した場合にイベントの反復を指定するために使用する要素を次の表に示します。イベントの反復の指定方法について詳しくは、『ColdFusion アプリケーションの開発』の会議および予定の操作の定期的なカレンダーイベントの設定を参照してください。
要素 |
タイプ |
デフォルト |
説明 |
---|---|---|---|
RecurrenceType |
すべて |
DAILY |
構造体の IsRecurring 要素が yes の場合にのみ使用されます。有効な値は次のとおりです。
|
RecurrenceNoEndDate |
すべて |
yes |
ブール値です。この要素が yes の場合、イベントは削除または変更されるまで反復されます。RecurrenceCount または RecurrenceEndDate とともに使用することはできません。 |
RecurrenceCount |
すべて |
|
イベントを反復する回数です。RecurrenceEndDate または RecurrenceNoEndDate とともに使用することはできません。 |
RecurrenceEndDate |
すべて |
|
最後に反復する日付です。RecurrenceCount または RecurrenceNoEndDate とともに使用することはできません。 |
RecurrenceFrequency |
DAILY、WEEKLY、MONTHLY |
1 |
反復する頻度です(日数、週数または月数)。例えば、反復のタイプが DAILY の場合、RecurrenceFrequency を 3 に設定すると 3 日おきにイベントがスケジュールされます。 |
RecurEveryWeekDay |
DAILY |
|
日曜日と土曜日を除く平日にイベントを反復します。RecurrenceFrequency とともに使用することはできません。 |
RecurrenceDays |
WEEKLY |
|
イベントが発生する曜日を 1 つまたは複数指定します。次の値をコンマ区切りリストで指定する必要があります。MON、TUE、WED、THU、FRI、SAT、{{SUN}}。反復のタイプが WEEKLY の場合、このフィールドを省略すると、指定された開始日に対応する曜日にイベントが反復されます。 |
RecurrenceDay |
MONTHLY、YEARLY |
|
何曜日にイベントを発生させるかを示します。有効な値は次のとおりです。
|
RecurrenceWeek |
MONTHLY、YEARLY |
|
月または年の第何週にイベントを繰り返すかを指定します。使用できる値は次のとおりです。
|
RecurrenceMonth |
YEARLY |
|
イベントを繰り返す月を指定します。有効な値は、JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV および DEC です。 |
delete アクション
delete アクションを指定する場合は、削除するイベントを識別する Exchange UID のコンマ区切りリストを uid 属性で指定します。UID 値を確認するには、適切なフィルター式を指定した get アクションを使用します。
cfexchangecalendar タグで指定した UID がすべて無効な場合は、エラーが発生します。1 つでも有効な UID が含まれる場合は、無効な UID が無視され、有効な UID に対応する項目が削除されます。
get アクション
get アクションを指定する場合は、子の cfexchangefilter タグを使用して取得するメッセージを指定します。フィルターについて詳しくは、cfexchangefilter を参照してください。
タグの処理が完了すると、name 属性で指定したクエリオブジェクトに、取得したメッセージごとのレコードが格納されます。各レコードには次の列があります。
AllDayEvent |
Duration |
EndTime |
From |
HasAttachment |
HtmlMessage |
Importance |
IsRecurring |
Location |
Message |
OptionalAttendees |
Organizer |
Reminder |
RequiredAttendees |
Resources |
Sensitivity |
StartTime |
Subject |
UID |
Categories |
次の表で、From、HtmlMessage、Message および UID フィールドについて説明します。他のフィールドについて詳しくは、create アクションの説明の表を参照してください。
列 |
説明 |
---|---|
From |
イベントを作成したユーザーの Exchange ID です。 |
HtmlMessage |
イベントに関するメッセージの HTML バージョンです。 |
Message |
イベントに関するメッセージのプレーンテキストバージョンです。 |
UID |
メールイベントに割り当てられた一意の Exchange 識別子です。delete、getAttachments および modify アクションでは、この値を使用してイベントを識別します。 |
getAttachments アクション
getAttachments アクションを使用する場合は、1 つの UID と name 属性を指定します。cfexchangecalendar タグにより、指定した名前を持つクエリオブジェクトにデータが入力されます。各レコードには、UID で指定したイベントの添付ファイルに関する次の情報が含まれます。
列 |
説明 |
---|---|
attachmentFileName |
添付ファイルのファイル名です。 |
attachmentFilePath |
サーバー上の添付ファイルの絶対パスです。attachmentPath 属性を省略すると、この列には空の文字列が入ります。 |
CID |
添付ファイルの content-ID です。通常は、メッセージにイメージを埋め込むために HTML の img タグ内で使用します。 |
mimeType |
添付ファイルの MIME タイプです(text/html など)。 |
isMessage |
添付ファイルがメッセージかどうかを指定するブール値です。 |
size |
添付ファイルのサイズです(単位:バイト)。 |
添付ファイルは attachmentPath 属性で指定したディレクトリに保存されます。attachmentPath 属性を省略すると、添付ファイル自体は取得されず、添付ファイルに関する情報が取得されます。この方法を使用すると、添付ファイルの取得に伴うオーバーヘッドを発生させることなく、イベントの添付ファイルを調べることができます。メモリ内の attachmentPath ディレクトリを指定するには、次のシンタックスを使用します。メモリ内のファイルはディスクに書き込まれないため、一時的データの処理が速くなります。
attachmentpath = “ram:///path” |
パスには、ram:///petStore/orders/messageAttachments のように複数のディレクトリを含めることができます。ファイルを指定する前に、パスに含まれるすべてのディレクトリを作成しておく必要があります。メモリ内ファイルの使用方法について詳しくは、『ColdFusion アプリケーションの開発』の ColdFusion アプリケーションの最適化のメモリ内ファイルの使用を参照してください。
getAttachments アクションは、Exchange のサーバー設定で EWS(Exchange Web サービス)の認証が basic に設定されている場合にのみ有効です。IWA(Integrated Windows Authentication)はサポートされていません。
modify アクション
modify アクションを指定する場合は、uid 属性でイベント UID を 1 つだけ指定して、変更するイベントを選択します。複数の UID は指定できません。event 構造体では、変更するフィールドのみを指定してください。フィールドの詳細と有効な値については、create アクションの表を参照してください。
イベントに添付ファイルがある場合、イベントを変更するときに添付ファイルを指定すると、新しい添付ファイルが既存の添付ファイルに追加されます。添付ファイルが置き換えられることはありません。添付ファイルを削除するには、deleteAttachments アクションを使用します。
respond アクション
cfexchangemail タグによって送信された会議通知に応答するには、respond アクションを使用します。メールメッセージに応答して要求を完全に承認するか暫定的に承認するまで、その会議はカレンダーに表示されず、cfexchangecalendar タグを使用して会議にアクセスすることはできません。
respond アクションを指定する場合は、通知メールメッセージに含まれるイベント UID を指定します。また、応答のタイプ(イベントの承認、拒否または暫定的承認)も指定します。必要に応じて、応答に含めるメッセージを指定することもできます。また、イベントの作成者に応答を通知するかどうかを指定するフラグも設定できます。respond アクションの使用について詳しくは、『ColdFusion アプリケーションの開発』の会議および予定の操作を参照してください。
suggestions 構造体の値
構造体の値 |
説明 |
---|---|
date |
会議の候補日です。 |
quality |
候補日の品質で、Excellent、Good、Fair または Poor のいずれかです。 |
TimeSuggestion |
次の値が含まれる構造体の配列です。
|
attendeeavailability 構造体の値
構造体の値 |
説明 |
---|---|
CalendarEvent |
次の値が含まれる構造体です。
|
mergedFreeBusyStatus |
ステータスが含まれる構造体の配列です。ステータスは次のいずれかです。
|
viewType |
取得される、出席者の空き時間情報のビュータイプです。次の値を指定できます。
|
workingHours |
次の詳細が含まれる構造体です。
|
Exchange UID 値
すべての cfexchangecalendar アクションにおいて uid 属性の値は次のとおりです。
- exchangeServerVersion が 2003 または 2007 に設定されている場合:uid は、開催者のメールボックス内の予定の ID を示します。
- exchangeServerVersion が 2010 に設定されている場合:uid は、出席者のメールボックス内の受信した予定の ID を示します。
Microsoft Exchange Server 2003 または 2007 との連携では、予定が作成されるとすぐに、出席者はすべての操作(応答、添付の削除や取得など)に開催者の UID を使用できます。Microsoft Exchange Server 2010 の場合、この動作は異なります。出席者が予定関連のアクションを実行する必要がある場合は、最初に自分のメールボックス内の予定を検索し、それからその予定の UID を使用する必要があります。
例 1
次の例では、カレンダーイベントを作成してから変更します。最初にフォームを送信すると、カレンダーイベントが作成され、入力したデータとともにフォームが再表示されます。フォームを変更して再送信するには、イベントを承認します。2 回目にフォームを送信するときには、変更された情報が送信されます。詳しくは、『ColdFusion アプリケーションの開発』の会議および予定の操作を参照してください。
この例ではコードを短くするためにすべてのイベントデータが再送信されますが、変更したデータだけを送信するように記述することもできます。
<! --- イベント情報の自己送信フォーム ---> |
例 2
次の例は、getUserAvailability アクションを実行する方法を示しています。
<cfset todayDate = #Now()#> |
Availability.cfm
action=“open” |
次の例は、getRooms および getRoomList アクションを使用する方法を示しています。
action=“open” |
例 3
folderId 属性を使用して、セカンダリカレンダーで予定を作成および取得します。
|
folderpath 属性を使用して、セカンダリカレンダーで予定を作成および取得します。
<cfexchangeconnection action="open" connection="conn1" server="<server hostname/IP>" username="<username>" password="<password>" serverversion="2010" protocol="<protocol>" > |
username と password を使用した例
<cfscript> eventStruct = structnew(); eventStruct.AllDayEvent = "yes"; eventStruct.Importance = "low"; eventstruct.RequiredAttendees = "user@example.com"; eventstruct.Subject = "This is any subject " & rand("CFMX_COMPAT" ); eventStruct.StartTime = now(); </cfscript> <cfexchangecalendar action="create" username ="user1" password="password" server="exchangeServerIP" serverversion="version" protocol="protocol" event="eventStruct" result="theUID" /> <cfscript>sleep(1000);</cfscript> <cfexchangeCalendar action="get" username ="user1" password="password" server="exchangeServerIP" serverversion="version" protocol="protocol" name="getEvent"> <CFExchangeFilter name="subject" value="calendar"> </cfexchangeCalendar> <cfset myArray = ArrayNew(1)> <cfloop query="getEvent"> <cfset temp = ArrayAppend(myArray, "UID")> </cfloop> <cfset myList = ArrayToList(myArray, ",")> <cfset myLen = ListLen(myList)> <cfoutput query="getEvent"> <cfif getEvent.subject contains "calendar"> <cfexchangeCalendar action="delete" username ="user1" password="password" server="exchangeServerIP" serverversion="version" protocol="protocol" uid="myList"> Successful! <br> </cfif> </cfoutput>