2017-01-25 5 views
11

私はC#でアプリケーションを作成しています。これで私はコードを介してユーザーに送信され、Outlookメールに表示される会議出席依頼を作成することができます。C#のOutlook会議出席依頼を削除します。

以下のコードは、私がミーティングの招待状を送信するために使用しているコードです。それは正常に動作しています。

StringBuilder OutlookBody = new StringBuilder(); 
string textvs = @"BEGIN:VCALENDAR 
PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN 
VERSION:1.0 
BEGIN:VEVENT 
LOCATION:" + Location + @" 
DTSTART:" + string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", start) + @" 
DTEND:" + string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", end) + @" 
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:= " + OutlookBody + @"=0D=0A SUMMARY:" + AppoitmentName + @" 
PRIORITY:3 
END:VEVENT 
END:VCALENDAR"; 

Outlookの会議出席依頼を削除するにはどうすれば同じコードを使用できますか?

私はthis答えもチェックしましたが、私の問題は解決しませんでした。

+0

downvotingの理由を指定してください、次のMIMEタイプを使用します。 @downvoter –

+0

私はdownvoterではないが、あなたが言った答えが役に立たなかった理由を教えてくれますか?それはちょうどその場にあったように見えます。強制的に削除することはできません。受信者が「会議のキャンセル - カレンダーからの削除」のような通知として常に表示される別のメッセージです。 – dlatikay

+0

@dlatikay:このコードは、Outlookの会議出席依頼を送信するために正常に動作しています。私はこのコードを変更してOutlook会議のキャンセルを送信したい、キャンセルされた状態を追加している可能性があります。私は何をすべきかわからない。 –

答えて

2

OutLookでは、すべての予定/会議で一意のIDとChangeKeyが取得されます。会議に変更が加えられるたびに、新しいChangeKeyが生成されます。既存の会議を更新するには、IDと最新のChangeKeyが必要です。

あなたのアプローチでは、私が間違っていない場合、電子メールでOutlookに追加されるICALを構築するだけです。この場合、会議をプログラム的に変更するためのIdとChangeKeyはありません。私はむしろアプローチを変更することをお勧めします。

Microsoft Exchangeをお持ちの場合は、次のリンクを参考にしてください。そうでなければ、リンクを無視してください。

https://msdn.microsoft.com/en-us/library/office/dn495611(v=exchg.150).aspx https://msdn.microsoft.com/en-us/library/office/dn495612(v=exchg.150).aspx

2

あなたはこれらの行を追加することで、会議の方法とステータスを設定することができます。

METHOD: CANCEL 

STATUS: CANCELLED 

here多くを参照してください。

+0

私はこれを試しましたが、動作していません。 –

0

は、次のコード

StringBuilder OutlookBody = new StringBuilder(); 
string textvs = @"BEGIN:VCALENDAR 
PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN 
VERSION:1.0 
BEGIN:VEVENT 
LOCATION:" + Location + @" 
DTSTART:" + string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", start) + @" 
DTEND:" + string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", end) + @" 
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:= " + OutlookBody + @"=0D=0A SUMMARY:" + AppoitmentName + @" 
PRIORITY:3 
METHOD:CANCEL 
STATUS:CANCELLED 
END:VEVENT 
END:VCALENDAR"; 

を使用して、私はそれを修正することができるように

System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType("text/calendar; method=CANCEL"); 

AlternateView alternate = AlternateView.CreateAlternateViewFromString(body, mimeType); 
message.AlternateViews.Add(alternate); 
+0

SardannaどこでこのmimeTypeを定義し、これをどう使うべきですか? –

+0

コメント内のコードが明確でない場合でも答えを更新しましたので、Mimeタイプの指定方法がわかります。 –

関連する問題