none
Cómo enviar correo CC (con copia) desde VB.NET.. RRS feed

  • Pregunta

  • Estimados,

     Me gustaria saber como puedo enviar un correo desde VB.net, a partir de un archivo excel.

    Les comento que en un excel, tengo una columna con los correos de destino, separador por ';' ...por ejemplo:

    'xxxxxxxxx@lala.com; yyyyyy@lala.com'

    entonces lo que necesito hacer, es enviar un correo a la primera direccion, pero con copia a la segunda. El código que manejo actualmente sólo me envía a la primera dirección.

    Public Sub EnviarCorreos()
    
            Dim dbConn As New excelConn("C:\ValidacionOS\envioMensajes.xls")
            Dim query As String = "SELECT * FROM [Sheet1$]"
            Dim ds As DataSet = Nothing
    
            Try
    
                dbConn.Open()
                ds = dbConn.ExecuteQuery(query)
                dbConn.Close()
    
            Catch ex As Exception
                Throw ex
                Exit Sub
            End Try
    
            ''variables para envio correo
            Dim de As MailAddress
            Dim para As MailAddress
            Dim mensaje As MailMessage
            Dim sp As SmtpClient
    
            de = New MailAddress("noreply@Sonda.com")
    
            ''varaibles para manejar el dataset
            Dim correoDestino As String
            Dim contenido As String
    
            For Each dr As DataRow In ds.Tables(0).Rows
    
                If Not dr.Equals(DBNull.Value) Then
    
                    If Not dr.Item("CorreoAgenteResponsable").Equals(DBNull.Value) Then
                        correoDestino = dr.Item("CorreoAgenteResponsable")
                    Else
                        correoDestino = "rodrigo.fenana@sonda.com"
                    End If
    
                    contenido = dr.Item("Mensaje")
    
                    If Not correoDestino.Equals("CorreoAgenteResponsable") Then
                        para = New MailAddress(correoDestino)
                        mensaje = New MailMessage(de, para)
    
                        'mensaje.Priority = MailPriority.High
    
                        mensaje.Subject = "(No responder) Solicitud de corrección de OS " + dr.Item("NumeroOS").ToString
                        mensaje.BodyEncoding = System.Text.Encoding.UTF8
                        mensaje.Body = contenido
                        mensaje.IsBodyHtml = False
    
                        Try
                            sp = New SmtpClient("SONDA-EXCH03")
    
                            sp.Send(mensaje)
                        Catch ex As Exception
                            Throw ex
                        End Try
                    End If
                End If
            Next
    
            guardarHistorico(ds)
    
        End Sub

    Si alguien me puede ayudar a enviar el CC, se lo agradeceré mucho!

    martes, 23 de octubre de 2012 13:53

Respuestas

  • no aconsejaria que pongas todo el armado del mail dentro del

    For Each dr As DataRow In ds.Tables(0).Rows

    porque es para complicarse, usa

    For Each dr As DataRow In ds.Tables(0).Rows
    
        Dim correos As String = CStr(dt("CorreoAgenteResponsable"))
    
        Dim primermail As boolean = True
        Dim maildestino As String
        Dim mailCC As New List(Of String)
    
       For Each correo As String in correos.Split(";"c)
    
          If primermail Then
             maildestino = correo
             primermail = False
           End If
    
           mailCC.Add(correo)
    
        Next
    
       'aqui usas maildestino o mailCC para armar el mail
    
    Next

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 23 de octubre de 2012 14:07