none
Enviar archivo desde OutLook RRS feed

  • Pregunta

  • Hola a todos, tengo una aplicación web de asp.net y quiero permitirle al usuario enviar un correo con archivo que se encuentra dentro de la aplicación web. tengo este código pero no se si funcionara desde el modo cliente. si tienen otra solución les agradecería si la comparten.

     Private Function EnviarArchivo()
            Dim Ruta As String = Server.MapPath("~/Documentos/Documento" & DropDownList1.Text & "" & txtnombre.Text & "" & txtexpediente.Text & ".pdf")

            Dim m_Outlook As Microsoft.Office.Interop.Outlook.Application
            Dim objMail As Microsoft.Office.Interop.Outlook.MailItem

            Dim HTML As String
            HTML = " Escriba Aqui su mensaje"

            Try
                m_Outlook = New Microsoft.Office.Interop.Outlook.Application
                objMail = m_Outlook.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem)
                objMail.To = ""
                objMail.Subject = "Asunto del Correo"
                objMail.HTMLBody = HTML
                objMail.Importance = Microsoft.Office.Interop.Outlook.OlImportance.olImportanceHigh
                objMail.Attachments.Add(Ruta)

                objMail.Display()

                Return True

            Catch ex As Exception
                Return False

            Finally
                m_Outlook = Nothing
            End Try
        End Function

    muchas gracias!.


    Raul Ulloa

    lunes, 19 de marzo de 2018 2:07

Respuestas

  • Podría llegar a funcionar, pero es bastante complicado. El problema es que las aplicaciones de Office, incluyendo Outlook, no están pensadas para utilizarse desde una cuenta de sistema en un servicio, sino que están pensadas para el usuario interactivo sobre el escritorio.

    Necesitarías una licencia de Office para instalarlo en el servidor, y luego se necesita modificar los permisos de DCOM para permitir que la cuenta de servicio bajo la que ruedes la aplicación en el pool de IIS pueda lanzar el Outlook a través de COM/Interop.

    Afortunadamente, existe una forma mucho más fácil de enviar correos desde tu aplicación ASP.NET, sin necesidad de hacer intervenir el Outlook. Simplemente usa las clases que hay en el espacio de nombres System.Net.Mail, y podrás enviar el mensaje con muy pocas líneas de código y mucha mayor eficiencia, y sin problemas de configuración ni de licencias.

    En la documentación tienes un ejemplo al final:

    https://msdn.microsoft.com/es-es/library/system.net.mail.mailmessage(v=vs.110).aspx

    • Marcado como respuesta Raul Ulloa lunes, 19 de marzo de 2018 14:22
    lunes, 19 de marzo de 2018 7:21