21 ago 2013

Enviar por email el backup de la base de datos (o otro adjunto)


Como comentaba, el método backupDB() se encargará de llamar al método enviarEmail().

Enviar un email con adjuntos


  • Importamos Imports System.Net.Mail antes de la declaración de la clase
  • Creamos un método enviarEmail() que se encargará de enviar por email cualquier archivo adjunto.
  • En mi caso cojo la fecha actual para enviarla en el sujeto del mensaje.
  • Configuramos los datos de los emails de origen y destino.
  • El puerto y el Host, en este caso está hecho por gmail, para otras configuraciones buscar por internet o con vuestro proveedor.
  • Finalmente a la variable mail le asignamos todas las configuraciones, From, To, Subject, Body, Attachments.
  • Y enviamos el email SmtpServer.Send(mail)
  • Si el envío es correcto o no nos avisará con un popup.

Public Sub enviarEmail()
        Dim d As Date
        d = Date.Now
        Dim completDate As String = d.ToString()
        Dim aux() As String = completDate.Split(" ")
        Dim fechaCompleta() As String = aux(0).Split("/")
        Dim dia As String = fechaCompleta(0)
        Dim mes As String = fechaCompleta(1)
        Dim año As String = fechaCompleta(2)

        Dim correcto As Boolean = True
        Dim SmtpServer As New SmtpClient()
        Dim mail As New MailMessage()
  Dim attachment As New Net.Mail.Attachment ("C:\Programa\Email\baseDatos.sql")
        Dim eMensaje1, eTo, eNuestroCorreo, eNuestraContraseña As String

        Try
            eNuestroCorreo = "tucorreo@tudominio.com"
            eNuestraContraseña = "tucontraseña"
         eMensaje1 = "Mensaje generado automaticamente como copia de seguridad de la base de datos"
            eTo = "correodestino@dominiodestino.com"
            SmtpServer.Port = 587
            SmtpServer.Host = "smtp.gmail.com"
            SmtpServer.EnableSsl = True
            SmtpServer.Credentials = New Net.NetworkCredential _
            (eNuestroCorreo, eNuestraContraseña)

            mail = New MailMessage()
            mail.From = New MailAddress(eNuestroCorreo)
            mail.To.Add(eTo)
           mail.Subject = "Copia Seguridad DB " & dia & "/" & mes & "/" & año
            mail.Body = eMensaje1
            mail.IsBodyHtml = True
            mail.Attachments.Add(attachment)

            SmtpServer.Send(mail)

        Catch ex As Exception
            MsgBox("No se pudo enviar el email", MsgBoxStyle.Exclamation, "Error")
            correcto = False
        End Try
        If correcto Then
            MsgBox("Copia enviada por email correctamente!", MsgBoxStyle.Information, "Correcto")
        End If
End Sub

No hay comentarios:

Publicar un comentario