1

私たちは、ユーザーにOutlook2003カレンダーに保存するためのicalを電子メールで送信するasp.net2.0Webアプリに取り組んでいます。ical 2.0仕様でサポートされているにもかかわらず、アイテムを更新または削除するコードが機能していないように見えることに気付きました。Outlook 2003がこれを無視するだけなのか、興味がありますか?Outlook 2007の動作は異なりますか?

イベントが変更またはキャンセルされて電子メール通知が発生する場合がありますが、更新されたicalは新しいイベントを追加するだけで、元のイベントを削除したり移動したりすることはありません。

私たちは何かが欠けていますか?

4

2 に答える 2

1

メッセージを削除するようになりましたが、思ったとおりに更新することはできませんでした。

送信する会議を設定するには...

BEGIN:VCALENDAR VERSION:2.0メソッド:PUBLISH BEGIN:VEVENT CLASS:PUBLIC PRIORITY:5 SEQUENCE:0 UID:12345 Summary:test LOCATION:test DTSTART:20090709T230000Z DTEND:20090710T000000Z DTSTAMP:20090713T164634Z Description:test END:VEVENT END:VCALEND

削除するには、次のようにキャンセルするようにメソッドを変更するだけでメッセージを送信します。

BEGIN:VCALENDAR VERSION:2.0 METHOD:CANCEL BEGIN:VEVENT CLASS:PUBLIC PRIORITY:5 SEQUENCE:0 UID:12345 Summary:test LOCATION:test DTSTART:20090709T230000Z DTEND:20090710T000000Z DTSTAMP:20090713T164634Z Description:test END:VEVENT END:VCALEND

削除に関する元々の問題は、オーガナイザー行が空白になっていることです。それを削除してキャンセルしました。

最初の行のようにオリジナルの発行物を更新することに関しては、私たちはできませんでした。シーケンス番号をゼロから1に増やし、新しい会議を追加するだけです。テストでは12345と同じUID番号を使用しています。

これを行うために私が見つけた唯一の方法は、オーガナイザーを作成し、公開からリクエストタイプに変更することです。

rfc2445を読むと、これが設計されているように見えます。公開は常に新しいレコードを作成し、順序は重要ではありません。シーケンスが重要な場合は、オーガナイザーとリクエストメソッドを使用します。

ここでstackoverflowをテストして読んだ後、この回答も見つかりました: ICalendarとイベントの更新がOutlookで機能しない

私はそれを以前に見ていませんでした....:)

サンプルは次のとおりです。

BEGIN:VCALENDAR VERSION:2.0 METHOD:REQUEST BEGIN:VEVENT CLASS:PUBLIC DTEND:20090713T203000Z DTSTAMP:20090713T174434Z DTSTART:20090713T200000Z ORGANIZER; CN = "No one special"; mailto:dontemailme@email.com PRIORITY:5 SEQUENCE:0 ?UID:1234567 END:VEVENT END:VCALENDAR

そしてそれを更新するには...

BEGIN:VCALENDAR VERSION:2.0 METHOD:REQUEST BEGIN:VEVENT CLASS:PUBLIC DTEND:20090713T213000Z DTSTAMP:20090713T174434Z DTSTART:20090713T210000Z ORGANIZER; CN = "No one special"; mailto:dontemailme@email.com優先度:5シーケンス:1 ?UID:1234567 END:VEVENT END:VCALENDAR

そしてそれをキャンセルするには...

BEGIN:VCALENDAR VERSION:2.0 METHOD:CANCEL BEGIN:VEVENT CLASS:PUBLIC DTEND:20090713T213000Z DTSTAMP:20090713T174434Z DTSTART:20090713T210000Z ORGANIZER; CN = "No one special"; mailto:dontemailme@email.com優先度:5シーケンス:1 ?UID:1234567 END:VEVENT END:VCALENDAR

キャンセルの場合、シーケンス番号は関係ありません。

于 2009-07-13T17:01:24.753 に答える
0

Outlook 2007での私の経験は、Outlook2003での経験と同じであると言わざるを得ません。それはPUBLISHを完全に無視します。

私がこれを回避する最善の方法は、会議を添付ファイルとして使用することです。そうすれば、会議を開いて「自分で作成」し、追跡を利用して、出席者に更新を送信できます。

マイクロソフトはここで標準をうまく利用することに興味がないと思います。

于 2010-06-18T12:56:50.413 に答える