解決方法がわからない小さな問題があります。私はC#、Visual Studio 2010、およびOutlookライブラリを使用しているエラーページで作業しています。私のプロジェクトでは、次のライブラリを追加しました: "Microsoft.Office.Interop.Outlook" Visual Studio が提供するサーバーを使用して Web サイトを実行すると、ページは完全に機能します。IIS を介してページを実行すると、ログに次のように表示されます。「次のエラーのため、CLSID {0006F03A-0000-0000-C000-000000000046} のコンポーネントの COM クラス ファクトリを取得できませんでした: 80070005 アクセスが拒否されました。(HRESULT からの例外) : 0x80070005 (E_ACCESSDENIED))."
それがなぜなのか誰か知っていますか?修正するにはどうすればよいですか?
C# を使用して Outlook の予定を作成し、この予定をサーバー フォルダーの 1 つに保存して、電子メールに添付して送信したいのですが、どうすればよいですか?
私のコードはこれです:
using Microsoft.Office.Interop;
using Outlook = Microsoft.Office.Interop.Outlook;
using System.Net.Mail;
Outlook.Application outlookApp = (Outlook.Application)new Outlook.Application();
Outlook.AppointmentItem appointment = (Outlook.AppointmentItem)outlookApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olAppointmentItem);
appointment.Subject = subject;
appointment.Body = comments;
appointment.Location = location;
appointment.StartUTC = dateInit;
appointment.EndUTC = dateEnd;
appointment.ReminderSet = true;
appointment.ReminderMinutesBeforeStart = advideInMinutes;
appointment.BusyStatus = Microsoft.Office.Interop.Outlook.OlBusyStatus.olBusy;
string appointmentPath = "c:\\webroot\\appointment\\appointmentName.msg";
appointment.SaveAs(appointmentPath);
MailMessage mail = new MailMessage();
mail.To.Add(new System.Net.Mail.MailAddress("mail@domain.com"));
mail.From = new System.Net.Mail.MailAddress("mail@domain.com", "MyName", System.Text.Encoding.UTF8);
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = true;
mail.Priority = MailPriority.Normal;
Attachment appointmentAttahment = new Attachment(appointmentPath);
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("authsmtp.mydomain.com");
smtp.Credentials = new System.Net.NetworkCredential(Settings.Items["mail@domain.com", "password");
smtp.EnableSsl = false;
smtp.Send(mail);
appointmentAttahment.Dispose();