none
[Ayuda] Cómo Enviar email RRS feed

  • Pregunta

  • Hola amigos,

    En el submain de mi aplicación tengo lo siguiente.

        Private Sub Application_ThreadException(ByVal sender As Object, ByVal e As ThreadExceptionEventArgs)
    Msgbox.show( e.Exception.ToString))
        End Sub

    Me gustaría saber como puedo enviar esa excepcion a un email (aunque llegue como SPAM) y añadiendo en el cuerpo del mensaje por ejemplo un código html junto al error, por ejemplo:

    Text.= "<b>Usuario:</b>"

    y aqui abajo la excepcion

    Gracias

    miércoles, 27 de junio de 2018 14:30

Todas las respuestas

  • Agrega un Imports de System.Net.Mail, y entonces envía el mensaje usando MailMessage y SmtpClient.

    Mira el ejemplo que viene al final de la página de documentación:

    https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient(v=vs.110).aspx

    Aunque el ejemplo es muy completo, no necesitas usar todo lo que trae. Te basta con el MailMessage, poniéndole el Addres y Subject y rellenando el Body con el texto de la excepción que quieres enviar, y luego lo transmites con el método Send del SmtpClient.

    Mira la documentación, y si tienes alguna duda pregunta aquí en el foro.

    miércoles, 27 de junio de 2018 15:23
  • Hola Gracias,

    Intento seguir el ejemplo pero me resulta bastante dificil acoplarlo para enviar los reportes

    jueves, 28 de junio de 2018 7:13
  • Basicamente tienes que hacer un New MailMessage y a través de sus propiedades ponerle los valores para el Subject, el To y el Body, y luego hacer un New SmtpClient y llamar al .Send(mensaje). Ponnos aqui lo que llevas hecho y le echamos un vistazo a ver qué falta o sobra.
    jueves, 28 de junio de 2018 10:14
  • Hola yo utilizo estas funciones, mira a ver si te puede servir.

    Imports Application = Microsoft.Office.Interop.Outlook.Application
    Imports System.Runtime.InteropServices
    Imports Microsoft.Office.Interop
    
       Public Function OutlookInstalado() As Boolean
          Dim oApp As Application = Nothing
          'Dim mbKillMe As Boolean = True
          Try
             oApp = New Application
             oApp = CType(GetObject(, "Outlook.Application"), Application)
             'mbKillMe = False
          Catch ex As Exception
             If oApp Is Nothing Then
                oApp = New Application
                'mbKillMe = True
             End If
          End Try
    
          If oApp Is Nothing Then
             MessageBox.Show("Outlook no está instalado", "Atencion", MessageBoxButtons.OK)
             Return False
          Else
             Return True
          End If
       End Function
    
    
       Private Sub enviarMensaje(ByVal eMail As String, ByVal mensaje As String)
          If OutlookInstalado() = False Then
             MessageBox.Show("El Outlook no está instalado.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
             Exit Sub
          End If
          Dim mOutlook As Outlook.Application
          Try
             'Dim saltoLinea As String = "<br/>"
             Dim oEMail As Outlook.MailItem '= New Outlook.MailItem
             mOutlook = New Outlook.Application
             oEMail = CType(mOutlook.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)
             With oEMail
                .To = eMail
                .CC = ""
                .Subject = txtAsunto.Text
                .HTMLBody = mensaje
                .BodyFormat = Outlook.OlBodyFormat.olFormatHTML
                .Importance = Outlook.OlImportance.olImportanceNormal
                .ReadReceiptRequested = False
                .Recipients.ResolveAll()
                .Save()
                If chkAbrirOutlook.Checked = True Then
                   .Display()     'Abre la ventana del Outlook, para que se pueda editar
                Else
                   .Send()        'se envia automaticamente sin editar
                End If
             End With
          Catch ex As Exception
             MessageBox.Show(ex.Message & vbCrLf & "-----" & vbCrLf & ex.ToString, "ATENCION")
          End Try
       End Sub
    

    Un saludo.

    jueves, 28 de junio de 2018 13:03
  • Una observación: Enviar el correo de esta forma requiere tener comprado, instalado y configurado un Outlook en la misma máquina en la que rueda la aplicación (y configurarlo por cada usuario que ejecute la aplicación). En cambio, con el System.Net.Mail no se requiere tener instalado nada en especial, ya que lo soporta el propio Framework de .NET.
    jueves, 28 de junio de 2018 19:31
  • Gracia Alberto, lo tendré en cuenta..

    un saludo.

    viernes, 29 de junio de 2018 14:48