2013-02-26 15 views
11

iCalendar標準を使用してMicrosoft Outlookの予定表にイベントを作成しようとしています。コンテンツタイプ "text/calendar"の電子メールを.NETアプリケーションからExchangeメールボックスに送信しました。 Outlookに会議出席依頼として届きます。受信した会議出席依頼をクリックする瞬間まで、すべてがうまく見えます。Outlookは、それを空のカレンダービューとして表示します。「会議がカレンダーに見つかりません」。 なぜ私はイベントを作成したいと思っていましたが、既存のイベントを見つけようとしていますか?iCalendarでオーガナイザのイベントが作成されない

オーガナイザー以外のすべての参加者に同じメールを送信すると、カレンダーに予定が作成され、すべてが正常であるようです。 "ORGANIZER"プロパティが原因であることがわかりました。開催者の電子メール(私の電子メール)に設定されていて、自分自身に会議出席依頼を送信した場合、「会議がカレンダーに見つかりません」という情報がイベントとして作成されません。

なぜ、オーガナイザーのイベントが作成されないのですか?主催者は、会議を承認またはキャンセルした場合、他の参加者からの通知を受けるためにそのイベントを作成する必要があります。ここで

はiCalendar形式です:

BEGIN:VCALENDAR 
PRODID:-//Company//Product 3.0//EN 
VERSION:2.0 
CALSCALE:GREGORIAN 
METHOD:REQUEST 
BEGIN:VEVENT 
DTSTART:20130225T200000Z 
DTEND:20130225T203000Z 
DTSTAMP:20130225T143039Z 
ORGANIZER;CN="John Doe":mailto:[email protected] 
UID:[email protected] 
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN="John Smith" 
;X-NUM-GUESTS=0:mailto:[email protected] 
CLASS:PUBLIC 
CREATED:20130225T143039Z 
DESCRIPTION: 
LAST-MODIFIED:20130225T143039Z 
LOCATION: 
SEQUENCE:0 
STATUS:CONFIRMED 
SUMMARY:Booking test 
TRANSP:OPAQUE 
END:VEVENT 
END:VCALENDAR 
+0

との間にわずかな遅延に入れてこの問題に対処するために、私はノー「ORGANIZER」と主催者(A)への招待を送信しようとした、イベントが追加され、その後、私はすべての「出席者」の(B&C)と、この場合、Aに「主催者」、この設定時間を含む別の「REQUEST」を送信し、B&Cは、右のイベントを取得しますが、AIのために、「申し訳ありません!変更を取得します主催者は許可されていません。その結果、主催者は出席者やアイディアを見ることができません。 – Asgaroth

+0

私は昨日新しい回答を追加しました。それを確認してください、それがあなたに役立つかどうかを確認してください – gregjer

答えて

14

オーガナイザーが会議を作成したいとします2人の出席者が参加できます。彼は予約システムのフォームに記入します。 予約システムは、iCalendar標準を含む電子メールを自分自身と2人の会議出席者に送信します。

このシナリオは機能しません。

オーガナイザーのカレンダーで予定(キャンセル可能な会議オブジェクト)を作成することはできません。クライアントは、iCalendar形式を含む電子メールは、オーガナイザカレンダーですでに作成された会議の出席者の通知に過ぎないと考えています。このような電子メールがオーガナイザーのメールボックスに到着した場合、クライアントアプリケーションはオーガナイザーのカレンダーにイベントを作成しません。主催者自身がイベントを作成したものとみなします。たとえば、Outlookでは、「カレンダーに会議が見つかりません」というメッセージが表示されます。

あなたはそれについてマイクロソフトのサポートを依頼した場合、彼らは彼らだけがオープン標準をサポートしていないことを教えてくれ:この問題へhttp://support.microsoft.com/kb/2269506

作業溶液は、イベントを作成するために、プラットフォームサービス(Exchange Web ServicesまたはGoogle Calendar API)を使用することです主催者のカレンダー。 iCalendar標準を忘れてしまった。 サービスは自動的に出席者に通知を送信するように設定できます。 だから、あなたがEWS使用している場合、「SendInvitationsMode.SendToAllAndSaveCopy」を通過するのに十分である:

Appointment appointment = new Appointment(service); 
appointment.Subject = "Status Meeting"; 
appointment.Body = "The purpose of this meeting is to discuss status."; 
appointment.Start = new DateTime(2014, 3, 1, 9, 0, 0); 
appointment.End = appointment.Start.AddHours(2); 
appointment.Location = "Conf Room"; 
appointment.RequiredAttendees.Add("[email protected]"); 
appointment.RequiredAttendees.Add("use[email protected]"); 
appointment.OptionalAttendees.Add("[email protected]"); 
appointment.Save(SendInvitationsMode.SendToAllAndSaveCopy); 

やGoogleカレンダーのAPIの場合はtrueに「sendNotifications」パラメータを設定します。

すべての特定の出席者に電子メールを送信する必要はありません。

+0

あなたの答えをありがとう、私は恐れていた、iCalendarは、すでに存在しているイベントについての情報を交換するだけであるので、iCalendarだけでは動作しません、と言ったように、APIの処理.icsファイルを直接使用する必要はありません答え、私はあなたに恩恵を与えますが、私はあなたの答えを選ぶことができません、それは私の質問ではありません。 – Asgaroth

+0

私はical.netに問題があります。 ical.netを使って私の.Netアプリケーションでカレンダーを作成する。しかし、私の環境では、カレンダーのメールはうまく表示され、受け入れたり拒否することができます。しかし、顧客の環境では、この要求を受け入れるか取り消すための選択肢はありません。これは、Outlook 2010およびOutlook 2016でも顧客との間でのみ起こっています。しかし、私たちの環境では、2010年と2016年のOutlookでカレンダーの電子メールが正常に表示されています。おかげ – k2ibegin

0

私は、Exchangeは、イベントの主催者は、イベントの発信元であることを前提としているので、あなたの問題であることを前提としています。それは、そうでなければ、それがオーガナイザーを作る人々に会議を送る子供の遊びであり、彼らは自動的にその人のカレンダーに追加されるであろう。

すべては、この問題を回避する方法はありません。

0

電子メールで送信されるイベント招待状の動作はrfc6047に記述されており、これはicalendar RFC(RFC5545)をさらに拡張しています。

なりすまし@ xyzのある "出席者"

"を主催する" なりすまし、およびなりすまし

section 2とセキュリティ上のsection 3は、2つのスプーフィングの脅威をまとめたもの.example.netは、[email protected]によって編成された会議を変更またはキャンセルすることはできません。あなたのケースに

: それは経由で送信しようとする価値があるかもしれませんされていない場合1.あなたはOrganizer:mailtoメールでFrom:の話(あなたの交換と同じメールアドレスから招待状を送っていないのですか?主催者がカレンダーに招待状を持たせる必要性に対処するには、主催者の議題にプログラムで追加する必要があります.CUA(カレンダーユーザーエージェント)またはExchangeでは、サードパーティ製のメーラーは、エンドユーザーのUI使用なしにアジェンダでイベントを追加することはできません。

+0

あなたの助けをありがとう、招待状に使用される電子メールアドレスは交換と同じですので問題は依然として存在します。 – gregjer

12

これは古い問題ですが、私はそれが原因であると考えています 方法:要求 これは新しい項目ではなく、icalを更新する必要があることを示しています。代わりに を使用してください。方法:公開

これはDDay.iCalとOutlookの予定表で動作することが確認できます。ここ数カ月の間に

+0

は、会議の主催者として、私はOutlookで「あなたはまだ、この会議の招待状を送信していない」を取得し、私は、Outlookからそれを送信する必要があります。 – bradvido

+1

方法:私が会議主催者であっても、公開してくれました。 –

+0

@Bartおかげさまで、パブリッシュに切り替えると、 '.ics'ファイルを開いた後に「保存」ボタンが表示され、「カレンダーに会議が見つかりません」と表示されなくなりました –

0

、私たちのサービスはまた、あなたと同じ問題を満たす: 私たちのサービスは、主催者と参加者のカレンダーを満たし作成、 は、出席者は 、カレンダーの電子メールを取得することができます(atteendeeなど)主催者、主催者が含まれていますが、どうか会議の受信/拒否(ボタンが無効)やカレンダー(カレンダーイベントなし)で表示されない。

最後に、私は以下の条件の下でこれが起こる場合にのみことに気づく: 1. mail.From =主催 2. Ateendees.contains(主催者)//大文字と小文字を区別しません。

ので、(主催者を含め)私は単にfollwingに私のコードを変更し、それはすべての参加者のために正常に動作します:

if (!attendeeEmail.ToLower().Contains(organizer.Address.ToLower())) 
{ 
    message.From = organizer; 
} 
else 
{ 
    //such as your actual email sender, in our case, our mail sender use another email, 
    //say ActualSender,and if leave empty, then our mail sender will fill as: 
    message.From = ActualSenderEmail; 
} 
1

これは、一週間のために狂った私を運転したので、他の誰かが確認見ていいです私は何を疑った。実際には比較的簡単な解決策がありますが、それは非常に優雅ではありませんが、問題を解決します。なぜ外部からのオーガナイザーの役割を許されないのか理解できますが、できないことは迷惑です。

2つの招待状を送信します。自分自身(または主催者が誰であれ)に1つ、次に他の人に1つずつ。

自分自身には、ORGANSISERとしてあなた以外の何かがあるはずです。オーガナイザー:[email protected]

誰もがあなたの電子メールを主催者として持っているはずです。このアプローチが機能するために

、あなたはMETHOD設定する必要があります。REQUESTを。 PUBLISHに設定すると、更新時に重複が発生します。

このアプローチでは、あなたの日記で会議を取得し、返事を受け取ることを意味します( ATTENDEE; CN = "The Name"; RSVP = TRUE:mailto: UIDは、ファイルの両方のバージョンで同じであること[email protected]。)

注意。主催者は、彼らが応答を取得を開始する前に、彼らはそれ以外の人が効果的にまだ存在していない何かに返信され、それを受け入れることができるように最初の招待取得する場合には役立ちます。それは彼らが招待を受け入れないようにしていますが、ORGANIZERにとってはちょっと混乱するかもしれません。私は同じ問題を抱えていた電子メール1及び2

関連する問題