office enviar correo application c# email outlook

enviar - Cómo abrir la ventana nueva de Outlook en el servidor C#



send email c# (3)

Si ejecuta ese código en el servidor, ¿quién verá el mensaje recién creado? Incluso si hay un usuario conectado localmente al servidor, IIS se ejecuta sin una sesión de escritorio.

Si desea que el mensaje se muestre en el cliente , allí es donde debe ejecutar su código. ¿Por qué no usar una URL de mailto? Funcionará en cualquier navegador y se abrirá el cliente de correo electrónico predeterminado. Si necesita algo más sofisticado que eso, debe escribir su código en JavaScript y crear una instancia del objeto Outlook.Application utilizando el new ActiveXObject(). Solo puede hacer eso en IE y se debe confiar en que su sitio lo haga.

Estoy usando este enlace para abrir la nueva ventana de correo de Outlook. Cómo abrir Outlook nueva ventana de correo c #

Pero funciona bien en la máquina local, pero cuando lo implementé en el servidor muestra el siguiente error.

La recuperación de la fábrica de clase COM para el componente con CLSID {0006F03A-0000-0000-C000-000000000046} falló debido al siguiente error: 80040154 Clase no registrada (excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

La perspectiva de la oficina de Microoft es instalar en la máquina local, no en el servidor. Se requiere instalar y configurar Outlook en el servidor. Por favor ayuda. Gracias.


1. Usando Outlook

Para enviar un correo electrónico usando Outlook, necesitamos agregar una referencia a la biblioteca de enlace dinámico para Outlook que se llama Microsoft.Office.Interop.Outlook.dll. Para lo mismo, siga los pasos a continuación:

  • Ve a tu explorador de soluciones
  • Haga clic en agregar una referencia
  • Haga clic en la pestaña .Net
  • Vaya a través de la DLL y seleccione Microsoft.Office.Interop.Outlook.dll correctamente.
  • cuando haya seleccionado la referencia correcta, seleccione el botón "Aceptar" y esta referencia se agregará a su proyecto bajo referencias.

    using Outlook = Microsoft.Office.Interop.Outlook; //method to send email to outlook public void sendEMailThroughOUTLOOK() { try { // Create the Outlook application. Outlook.Application oApp = new Outlook.Application(); // Create a new mail item. Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem); // Set HTMLBody. //add the body of the email oMsg.HTMLBody = "Hello, Jawed your message body will go here!!"; //Add an attachment. String sDisplayName = "MyAttachment"; int iPosition = (int)oMsg.Body.Length + 1; int iAttachType = (int)Outlook.OlAttachmentType.olByValue; //now attached the file Outlook.Attachment oAttach = oMsg.Attachments.Add(@"C://fileName.jpg", iAttachType, iPosition, sDisplayName); //Subject line oMsg.Subject = "Your Subject will go here."; // Add a recipient. Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients; // Change the recipient in the next line if necessary. Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add("[email protected]"); oRecip.Resolve(); // Send. oMsg.Send(); // Clean up. oRecip = null; oRecips = null; oMsg = null; oApp = null; }//end of try block catch (Exception ex) { }//end of catch }//end of Email Method

    Para más información Abrir perspectiva


  • Actualmente, Microsoft no recomienda, y no admite, la automatización de las aplicaciones de Microsoft Office desde cualquier aplicación o componente de cliente desatendido y no interactivo (incluidos ASP, ASP.NET, DCOM y NT Services), ya que Office puede presentar un comportamiento inestable y / o interbloqueo cuando Office se ejecuta en este entorno.

    Si está creando una solución que se ejecuta en un contexto del lado del servidor, debe intentar usar componentes que se hayan hecho seguros para la ejecución desatendida. O bien, debería intentar buscar alternativas que permitan que al menos parte del código se ejecute en el lado del cliente. Si utiliza una aplicación de Office desde una solución del lado del servidor, la aplicación carecerá de muchas de las capacidades necesarias para ejecutarse correctamente. Además, asumirá riesgos con la estabilidad de su solución general.

    Lea más sobre eso en Consideraciones para la automatización del lado del servidor del artículo de Office .

    Considere usar clases .Net estándar o cualquier otro componente diseñado para la ejecución del lado del servidor. En el caso de una cuenta de Exchange Server, puede usar EWS (Exchange Web Services), ver EWS Managed API, EWS y servicios web en Exchange .