2015-11-27 3 views
0

Я получил следующую ошибку, когда попытался отправить электронное письмо с веб-приложения, хотя он работал хорошо раньше, у вас есть любая идея об этом? и он работает в режиме отладки визуальной студии, но сейчас не работает через IIS.Я не могу найти CLSID {0006F03A-0000-0000-C000-000000000046} или ms-outlook на DCOM

«Извлечение фабрики COM-класса для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80070005. Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека, чтобы получить дополнительную информацию об ошибке и где она возникла в коде. »

Как я понимаю, эта ошибка связана с доступом, запрещенным IIS к объекту outlook, но я пытаюсь найти решение для этого в google : решение состоит в том, чтобы разрешить учетную запись IIS-USRs для Outlook, но я не знаю, как это сделать Итак, я пытаюсь найти MS-OUTLOOK на dcom для добавления IIS-USRS, но я не могу найти его не могли бы вы рассказать мне точное название перспективы DCOM.

Мой код ниже

 Dim ol As New Outlook.Application() 
     Dim ns As Outlook.NameSpace 
     Try 
      Dim fdMail As Outlook.MAPIFolder 
      ns = ol.GetNamespace(MAPI) 
      ns.Logon(, , True, True) 


      'creating a new MailItem object 
      Dim newMail As Outlook.MailItem 
      'gets defaultfolder for my Outlook Outbox 
      fdMail = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox) 
      'assign values to the newMail MailItem 
      newMail = fdMail.Items.Add(Outlook.OlItemType.olMailItem) 
      newMail.Subject = RecordtypeDropDownList.Text + Notification 
      newMail.Body = You got + RecordtypeDropDownList.Text + for + CategoryDropdownList.Text 

      'newMail.To = EmaildropDownlistEM.Text ' we will pass the email from record missbonus point table in the final stage 

      newMail.To = Mid(EmaildropDownlistEM.Text, (EmaildropDownlistEM.Text.IndexOf(,)) + 2, 10) + . + Left(EmaildropDownlistEM.Text, EmaildropDownlistEM.Text.IndexOf(,)) 


      newMail.CC = xxxxxxxxx 

      newMail.SaveSentMessageFolder = fdMail 
      newMail.Send() 
     Catch ex As Exception 
      Throw ex 
     End Try 
+2

Вы не должны использовать Outlook Automation для отправки электронной почты из среды ASP.Net, что случилось с классами электронной почты frameworks? –

+0

Спасибо за ваш ответ. Итак, что вы предлагаете, если у меня есть учетная запись Outlook на одном сервере IIS, и я хочу, чтобы она отправляла электронные письма для приложения asp.net. –

+0

Вам по какой-то причине нужен прогноз? http://stackoverflow.com/questions/18326738/how-to-send-email-in-asp-net-c-sharp –

ответ

0

Вы не можете использовать Outlook, (или любое другое приложение) Office, в службе (например, IIS). В случае Exchange вы можете использовать EWS. Во всех остальных случаях использование прямого SMTP, вероятно, является лучшим решением.

+0

Спасибо за ваш ответ, могли бы сказать мне, как получить SMTP бесплатно –

+0

Компонент, который обертывает SMTP? Или SMTP-сервер? –