2017-10-19 12 views
-1

ユーザーの既定の電子メールクライアント(この場合はOutlookのみ)で予定を送信する必要があり、ユーザーはOutlookを開いている必要があります。ローカルプログラムから送信できますが、サーバ側では、私はコードがにせずにいるので、(ユーザーのデフォルトのメールクライアントであるため)その[OK]を、新しいOutlookの予定を開いて、ローカル環境には、C#でOutlook予定を送信する

public void aAppointment(string subject, string body, string date, string start, string end, string location, string attend) 
{ 
    Outlook._NameSpace ns = null;  
    Outlook.Application apptApp = new Outlook.Application(); 
    Outlook.AppointmentItem appt = 
    apptApp.CreateItem(Outlook.OlItemType.olAppointmentItem) as Outlook.AppointmentItem; 
    ns = apptApp.GetNamespace("MAPI"); 
    ns.Logon(null, null, false, false); 
    apptApp.ActiveWindow(); 
    appt.MeetingStatus = Outlook.OlMeetingStatus.olMeeting; 
    appt.Subject = subject; 
    appt.Body = body; 
    appt.AllDayEvent = false; 
    appt.Start = DateTime.Parse(date + " " + start); 
    appt.Location = location; 
    appt.End = DateTime.Parse(date + " " + end);  
    appt.RequiredAttendees = attend; 
    appt.Display(false); 
} 

試してからのエラーを持っていますが、サーバーでの認証エラーを持っている的環境サーバーにはOutlookがありますが、最終的なユーザーマシンの資格情報がないためにエラーが発生していると思われます。

Thxあなたの回答

+1

サーバー環境でOffice Interopを使用するのは良い考えではありませんが、頭痛の種はありません。 – Equalsk

+0

Jejeその真実、何が良い方法ですか? –

答えて

0

Outlookは、Officeアプリケーションと同様に、サービス(IISなど)で使用することはできません。コンテンツタイプが「text/calendar」のMIMEメッセージを作成し、ストレートSMTPを使用してiCalデータを送信します。

関連する問題