none
ENVIO DE CORREO CON VISUAL.NET 2003 RRS feed

  • Pregunta

  • Buen día. Alguna persona que pueda facilitarme un Ejemplo o alguna librería que funcione para envió de correos con VISUAL .NET 2003. Que no sea Visual 2005 con este no hay inconveniente porque utilizada System. Net. Mail mi Problema es con VISUAL .NET  2003 Que este usando la libreria System. Web. Mail...

    El problema es que el repositorio de microsfot no funciona: schemas.microsoft.com

    Alguna persona que me pueda extender un apoyo. Se lo agradecere.

    --- La lógica de Programación es la siguiente:

    Dim Smtp as string

    Smtp = "mail.plan-international.org.pe"

    If Smtp.Trim <> "" Then

    Const ConfigNamespace As String = "http://schemas.microsoft.com/cdo/configuration/"

    Dim omsg As New CDO.Message

    Dim iConfig As New CDO.Configuration

    Dim flds As ADODB.Fields = iConfig.Fields

    With flds

    .Item(ConfigNamespace & "smtpserver").Value = Smtp.Trim

    .Item(ConfigNamespace & "smtpserverport").Value = Port.Trim

    .Item(ConfigNamespace & "sendusing").Value = CDO.CdoSendUsing.cdoSendUsingPort

    .Item(ConfigNamespace & "sendusername").Value = User.Trim '"*** La dirección de correo electrónico se ha quitado por razones de privacidad ***"

    .Item(ConfigNamespace & "sendpassword").Value ="$Plan2000"

    .Item(ConfigNamespace & "smtpauthenticate").Value = CDO.CdoProtocolsAuthentication.cdoBasic

    .Update()

    End With

    With omsg

    .Configuration = iConfig

    .From = "*** La dirección de correo electrónico se ha quitado por razones de privacidad ***"

    .From = porigen.Trim

    .To = psupervisor.Trim

    .Subject = "Solicitud de " & ptipo.Trim

    .TextBody = ppersona.Trim & " ha generado una solicitud de " & pmensaje.Trim & " y esta a la espera de su aprobación"

    .Send()

    End With

    omsg = Nothing

    iConfig = Nothing




    martes, 19 de julio de 2016 15:54

Respuestas

  • @Carlos 

    Revisa este tutorial es para framework 1.1 lo he probado en C# y funciona

    Sending complex emails in .NET 1.1

    En la web hay varios traductores de código acá te dejo uno Convertir de C# a Visual Basic .NET

    Espero que te sea de utilidad.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    sábado, 23 de julio de 2016 12:01
  • Muchas. Gracias por su participación.

    Finalmente encontré una lógica que si me permitió enviar correos desde Visual.NET 2003.

    ----------------------------------------------------------------------------------

    Desde una Clase

    Namespace EnvioMail
        ''' <summary>
        ''' Descripción breve de SendMail.
        ''' </summary>

        Public Class EnvioMail

            ' TODO: *** Comprobar si es Inherits o Implements ***
            Inherits MailMessage

            Public fromName As String
            Public smtpServerName As String
            Public smtpUserName As String
            Public smtpUserPassword As String
            Public smtpServerPort As Integer
            Public smtpSSL As Boolean

            Public Sub New()
                fromName = String.Empty
                smtpServerName = String.Empty
                smtpUserName = String.Empty
                smtpUserPassword = String.Empty
                smtpServerPort = 25
                smtpSSL = False
            End Sub

            Public Sub Send()
                If smtpServerName.Length = 0 Then
                    Throw New Exception("SMTP Server not specified")
                End If

                If fromName.Length > 0 Then
                    Me.Headers.Add("From", String.Format("{0} <{1}>", fromName, From))
                End If

                ' set SMTP server name
                Me.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpServerName
                ' set SMTP server port
                Me.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = smtpServerPort
                Me.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

                If smtpUserName.Length > 0 AndAlso smtpUserPassword.Length > 0 Then
                    ' set SMTP Autentificacion
                    Me.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                    ' set SMTP username
                    Me.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = smtpUserName
                    ' set SMTP user password
                    Me.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = smtpUserPassword
                End If

                ' ssl if needed
                If smtpSSL Then
                    Me.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true")
                End If
                'http:'schemas.microsoft.com/cdo/configuration/
                SmtpMail.SmtpServer = smtpServerName
                SmtpMail.Send(Me)

            End Sub

        End Class

    End Namespace

    ----------------------------------------------------------------------------------

    Desde un Modulo 

                

    Public Function CorreoPermisosyVac(ByVal pmensaje As String, ByVal ppersona As String, ByVal psupervisor As String, ByVal ptipo As String)
            Try
                Dim obj As New Libreria.Libreria
                Dim porigen As String = obj.DevuelveCorreoPersonal(xregistro.dato, vidpersona)

                Smtp = obj.ServidorCorreo(xregistro.dato) '"smtp.gmail.com"
                Port = "465" '"587"
                User = "siim.peru@plan-international.org.pe" '"siimperuplan@gmail.com"
                Pass = "xxxxxxxxxx"
                'eorigen = "Carlos.Caballero@plan-international.org"
                'edestino = "TuCorreo@plan-international.org"

                If Smtp.Trim <> "" Then
                    'Dim obj As New Libreria.Libreria
                    Dim msg As New EnvioMail.EnvioMail.EnvioMail
                    msg.From = porigen.Trim ' "siim.peru@plan-international.org.pe";
                    msg.fromName = ppersona.Trim '"Carlos Caballero"
                    msg.To = psupervisor.Trim '"Carlos.Caballero@plan-international.org" '"siimperuplan@gmail.com";
                    msg.Cc = porigen.Trim
                    msg.Subject = "Solicitud de " & ptipo.Trim '"Mensaje Prueba"
                    msg.Body = ppersona.Trim & " ha generado una solicitud de " & pmensaje.Trim & " y esta a la espera de su aprobación."
                    msg.smtpServerName = smtp.Trim '"mail.plan-international.org.pe";
                    msg.smtpUserName = User.Trim '"siim.peru@plan-international.org.pe"
                    msg.smtpUserPassword = Pass.Trim '"xxxxxxxxxxxx"
                    msg.smtpServerPort = Port.Trim
                    msg.smtpSSL = True
                    msg.Send()
                Else
                    MessageBox.Show("No existe Servidor de Correo", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If

            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error de Mensajeria", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try

    ----------------------------------------------------------------------------------

    Desde un formulario

    Sub Main

     enviocorreo(vidpersona)

     Me.Close()

    End Sub

     Private Function enviocorreo(ByVal pidpersona As String)
            Dim dtjefe As DataTable = obj.DevuelveJefeSubordinado(xregistro.dato, pidpersona)
            If dtjefe.Rows.Count > 0 Then
                Dim vsuperior As String
                vsuperior = "" & obj.DevuelveCorreoPersonal(xregistro.dato, dtjefe.Rows(0)("superior"))
                If vsuperior.Trim <> "" Then
                    If dtgoce1.Value.Month = dtgoce2.Value.Month Then
                        CorreoPermisosyVac("Vacaciones de el " & "01/08/2016" & " al " & 20/08/2016" & " , por 20 dias",    & Trim(dtjefe.Rows(0)("Apellidos")) & ""&Trim(dtjefe.Rows(0("Nombres")),vsuperior.Trim,"Vacaciones")
                    End If
                Else
                    MessageBox.Show("Jefe Inmediato Superior no tiene Registro de Correo Electronico. No se procesara envio de Correo Automatico", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If
            Else
                MessageBox.Show("Usuario Solicitante no tiene Dependencia de alguna Jefatura. No se generara Envio automatico de Correo", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If

        End Function

    Saludos


    Carlos Caballero


    viernes, 5 de agosto de 2016 13:58

Todas las respuestas

  • No hace falta que uses los CDO, que son objetos COM. Con .NET viene ya incluida una librería con todo lo necesario para enviar correos. Puedes añadir en el proyecto una referencia a System.Web (aunque no sea una aplicación web) y usar directamente las clases de .NET que hay en el espacio de nombres Syste.Web.Mail. Ninguna de ellas necesita para nada usar el ConfigNamespace, que es lo que te está dando el error.
    martes, 19 de julio de 2016 21:06
  •   Estoy utilizando este otro metodo de envio. Y el Resultado es el mismo error de CDO.Message

    AYUDA!!!. Por favor

      Smtp = "mail.plan-international.org.pe"
            Port = "25"
            User = "siim.peru@plan-international.org.pe"
            Pass = "$xxxxxxx"

    oMsg.From = User.Trim
            oMsg.To = "Carlos.Caballero@plan-international.org"
            oMsg.Subject = "Enviar con GMail"
             oMsg.BodyFormat = MailFormat.Html       

            oMsg.Body = "Correo de Prueba"

    SmtpMail.Send(oMsg)
            SmtpMail.SmtpServer = Smtp.Trim
            SmtpMail.Send(oMsg)   -----Aquí sale el ERROR (Excepción no controlada del tipo 'System.Web.HttpException' en   system.windows.forms.dll
      Información adicional: No se puede obtener acceso al objeto 'CDO.Message'.)


    miércoles, 20 de julio de 2016 19:52
  • Hola

    Private Sub btnEnviar_Click(sender As Object, e As EventArgs)
                Dim _Correo As New MailMessage()
                If String.IsNullOrEmpty(txtDe.Text) Then
                    MessageBox.Show("Remitente no puede estar vacío", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Else
                    _Correo.From = new MailAddress(txtDe.Text)
                    End If
                    _Correo.To.Add(txtPara.Text)
                    _Correo.Subject = txtAsunto.Text
                    _Correo.Body = txtContenido.Text
                    _Correo.IsBodyHtml = false ' Le indicamos que el cuerpo del mensaje no es HTLM
                    _Correo.Priority = MailPriority.Normal
    
                End Sub
    
                If Adj = true Then
                    Dim _attachment As New Attachment(@Archivo)
                    _Correo.Attachments.Add(_attachment)
                    Adj = false
    
                End if
    
                Dim smtp As New SmtpClient()
                smtp.Credentials = new NetworkCredential(txtDe.Text, txtContraseña.Text)
                smtp.Host = "smtp.live.com"
                smtp.Port = 587
                smtp.EnableSsl = true
                Try
                    smtp.Send(_Correo)
                    MessageBox.Show("Correo enviado")
    
                Catch 
                    MessageBox.Show("No se pudo enviar el correo")
    
                End Try
                _Correo.Dispose()
    
    
    
    


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 21 de julio de 2016 14:36
  • Gracias Pedro. Por la buena intención de ayuda.

    El problema es que esa solución es para ENVIO DE MENSAJE EN VISUAL.NET 2005

    Estas sentencias ya los use así en otro proyecto y no hay problema. referencia  Imports System.Net.Mail

    Como por ejemplo aquí:

        Dim client As New SmtpClient (Smtp.Trim)
                Dim Desde As New MailAddress(porigen.Trim)
                Dim Hacia As New MailAddress(edestino.Trim)
                Dim message As New MailMessage(Desde, Hacia)
        client.UseDefaultCredentials = True
                client.Credentials = New System.Net.NetworkCredential(User, Pass)

    -

    YO NECESITO UNA SOLUCIÓN PARA ENVIÓ DE MENSAJE EN VISUAL.NET 2003 porque aquí se usa la referencia  Imports System.Web





    jueves, 21 de julio de 2016 19:39
  • Hola

    Has revisado este articulo

    Enviar un mensaje de correo electrónico (Visual Basic)


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    jueves, 21 de julio de 2016 21:39
  • Si lo revise y es entonces que Utilice esta logica pero tampoco funciona sale el error en el momento que llega al SEND  -----Aquí sale el ERROR

    (Excepción no controlada del tipo 'System.Web.HttpException' en  system.windows.forms.dll
      Información adicional: No se puede obtener acceso al objeto 'CDO.Message'.)

     Smtp = "mail.plan-international.org.pe"
            Port = "25"
            User = "siim.peru@plan-international.org.pe"
            Pass = "$xxxxxxx"

    oMsg.From = User.Trim
            oMsg.To = "Carlos.Caballero@plan-international.org"
            oMsg.Subject = "Enviar con GMail"
             oMsg.BodyFormat = MailFormat.Html       

            oMsg.Body = "Correo de Prueba"

    SmtpMail.Send(oMsg)
            SmtpMail.SmtpServer = Smtp.Trim
            SmtpMail.Send(oMsg)   -----Aquí sale el ERROR (Excepción no controlada del tipo 'System.Web.HttpException' en  system.windows.forms.dll
      Información adicional: No se puede obtener acceso al objeto 'CDO.Message'.)


    jueves, 21 de julio de 2016 22:30
  • Carlos 

    Que libreria estas usando?

    Yo estoy usando System.Web.Mail pero no encuentro una propiedad para poner el puerto del servidor de correo ni para el password del que loguea al servidor para enivar el mensaje

    De donde obtines Omsg? puedes poner el codigo completo?


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    • Editado Pedro Ávila jueves, 21 de julio de 2016 23:56 .............
    jueves, 21 de julio de 2016 23:48
  • Hola @Alberto

    Me he dado el tiempo de hacer el código para enviar el correo y hice lo que le indicas 

    Código de Visual Basic convertido:
    
    Private Sub btnEnviar_Click(sender As Object, e As EventArgs)
    
                Dim correo As System.Web.Mail.MailMessage = new System.Web.Mail.MailMessage()
                correo.From = txtDe.Text
    
                correo.To = txtPara.Text
                correo.Subject = txtAsunto.Text
                correo.Body = txtContenido.Text
                correo.BodyFormat = System.Web.Mail.MailFormat.Text
    
                correo.Priority = System.Web.Mail.MailPriority.Normal
                System.Web.Mail.SmtpMail.SmtpServer = "smtp.live.com"
                Try
                    System.Web.Mail.SmtpMail.Send(correo)
                    MessageBox.Show("Enviado correctamente")
    
                Catch ex As Exception
                    MessageBox.Show("Error:" &  ex.Message)
    
                End Try
    
            End Sub
    
    
    
    

    He visto que no puedo poner la contraseña del que remite no loguea al servidor de correos, después me da error en send.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    viernes, 22 de julio de 2016 0:18
  • Utilizo esta librería.

    Imports System.Web
    Imports System.Web.Mail
    Imports System.Web.Mail.MailMessage


    Pedro buen día.  Esta es mi lógica completa pero debido a que la ruta de los CDO de microsoft ya no estan en la URL "http://schemas.microsoft.com/cdo/configuration/"
    Sale error al momento que llega al SEND.

        Public Function CorreoPermisosyVac(ByVal pmensaje As String, ByVal ppersona As String, ByVal psupervisor As String, ByVal ptipo As String)

            Try

                Dim obj As New Libreria.Libreria
                'Dim smtp As String = obj.ServidorCorreo(xregistro.dato)          
                Dim porigen As String = obj.DevuelveCorreoPersonal(xregistro.dato, vidpersona)

                'Server:     smtp.gmail.com()
                'Port: 587
                'User: Cuenta Gmail
                'Password: Contraseña de la Cuenta
                'Test envio de correos 2016

                Dim Smtp As String
                Dim Port As String
                Dim User As String
                Dim Pass As String
                Dim edestino As String

                Smtp = "mail.plan-international.org.pe"
                Port = "25"
                User = "siim.peru@plan-international.org.pe" '"siimperuplan@gmail.com" 
                Pass = "$Plan2014"
                edestino = "Nora.Basterrechea@plan-international.org"

                If Smtp.Trim <> "" Then
                    Const ConfigNamespace As String = "http://schemas.microsoft.com/cdo/configuration/"
                    Dim omsg As New CDO.Message
                    Dim iConfig As New CDO.Configuration
                    Dim flds As ADODB.Fields = iConfig.Fields

                    With flds
                        .Item(ConfigNamespace & "smtpserver").Value = Smtp.Trim
                        .Item(ConfigNamespace & "smtpserverport").Value = Port.Trim
                        .Item(ConfigNamespace & "sendusing").Value = CDO.CdoSendUsing.cdoSendUsingPort
                        .Item(ConfigNamespace & "sendusername").Value = User.Trim '"siim.peru@plan-international.org.pe"
                        .Item(ConfigNamespace & "sendpassword").Value = Pass.Trim '"$Plan2014"
                        .Item(ConfigNamespace & "smtpauthenticate").Value = CDO.CdoProtocolsAuthentication.cdoBasic
                        .Update()
                    End With
                    With omsg
                        .Configuration = iConfig
                        '.From = "siim.peru@plan-international.org.pe"
                        .From = porigen.Trim
                        .To = psupervisor.Trim
                        .Subject = "Solicitud de " & ptipo.Trim
                        .TextBody = ppersona.Trim & " ha generado una solicitud de " & pmensaje.Trim & " y esta a la espera de su aprobación"
                        .Send()
                    End With

                    omsg = Nothing
                    iConfig = Nothing
                Else
                    MessageBox.Show("No existe Servidor de Correo", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)

                End If

            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error de Mensajeria", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try



    viernes, 22 de julio de 2016 13:56
  • Sí amigos vemos que el problema se da al momento que llega a la sentencia SEND(Email)

    Ese es el desafió.

    Hacer que funcione el Envió de Mensajes con VISUAL.NET 2003

    Aqui se utiliza la librería.

    Imports System.Web
    Imports System.Web.Mail
    Imports System.Web.Mail.MailMessage

    viernes, 22 de julio de 2016 14:05
  • Alguna Solución de Envió de Mensajes con VISUAL.NET 2003

    Utilizando las REFERENCIAS 

    Imports System

    Imports System.Web
    Imports System.Web.Mail

    Alguíen que conosca por favor.! Me podrían ayudar.



    viernes, 22 de julio de 2016 21:34
  • @Carlos

    Todo tu código esta bien el problema que tienes es que tu servidor es este "dime198.dizinc.com" y el puerto por donde recibe los correos tu servidor es este 465


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    viernes, 22 de julio de 2016 21:47
  • Repito que el problema es en VISUAL.NET 2003

    Send(msg)   NO ENVIA NADAAAA

                Dim obj As New Libreria.Libreria 

    Imports System
    Imports System.Web      


                Dim porigen As String = obj.DevuelveCorreoPersonal(xregistro.dato, vidpersona)

                Dim msg As New System.Web.Mail.MailMessage
                'Dim Message As String

                Dim Smtp As String
                Dim Port As String
                Dim User As String
                Dim Pass As String
                Dim edestino As String

                Smtp = "dime198.dizinc.com"
                Port = "465"         
                User = "siim.peru@plan-international.org.pe"
                Pass = "$Plan2014"
                edestino = "Carlos.Caballero@plan-international.org"
                'edestino = "Nora.Basterrechea@plan-international.org"

                If Smtp.Trim <> "" Then

                    msg.From = "siim.peru@plan-international.org.pe"
                    'msg.FromName = "PRUEBA FINAL CORREO"
                    msg.To = "Carlos.Caballero@plan-international.org"
                    msg.Subject = "Test email desde tu servidor"
                    msg.Body = "Hola Carlos"

                    System.Web.Mail.SmtpMail.SmtpServer = Smtp.Trim
                    System.Web.Mail.SmtpMail.Send(msg)

                    msg = Nothing
                Else
                    MessageBox.Show("No existe Servidor de Correo", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)

                End If

            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error de Mensajeria", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try

                    
    viernes, 22 de julio de 2016 22:13
  • @Carlos 

    Revisa este tutorial es para framework 1.1 lo he probado en C# y funciona

    Sending complex emails in .NET 1.1

    En la web hay varios traductores de código acá te dejo uno Convertir de C# a Visual Basic .NET

    Espero que te sea de utilidad.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    sábado, 23 de julio de 2016 12:01
  • Alguna Solución de Envió de Mensajes con VISUAL.NET 2003

    Utilizando las REFERENCIAS 

    Imports System
    Imports System.Web
    Imports System.Web.Mail

    Alguien que conozca por favor.! Me podrían ayudar.


    Carlos Caballero

    martes, 2 de agosto de 2016 20:23
  • Hola espero te sirva de ayuda..

    El siguiente codigo funciona con correos de Gmail y Hotmail

    //create the mail message MailMessage mail = new MailMessage(); String emailUsuario = "miemail@gmail.com"; String emailPassword = "password"; //set the addresses mail.From = new MailAddress(emailUsuario); mail.To.Add(emailDestinatario); //set the content mail.Subject = "test email"; // se crea el mensaje string body = ""; ... // se define el smtp SmtpClient smtp = new SmtpClient() { Host = "smtp.live.com", //Solo puedes cambiar a live y te funciona para gmail de manera correcta Port = 587, UseDefaultCredentials = false, Credentials = new NetworkCredential(emailUsuario,emailPassword), EnableSsl = true }; try { smtp.Send(mail); } catch (Exception ex) { MessageBox.Show(ex.Message); }

    jueves, 4 de agosto de 2016 23:56
  • Muchas. Gracias por su participación.

    Finalmente encontré una lógica que si me permitió enviar correos desde Visual.NET 2003.

    ----------------------------------------------------------------------------------

    Desde una Clase

    Namespace EnvioMail
        ''' <summary>
        ''' Descripción breve de SendMail.
        ''' </summary>

        Public Class EnvioMail

            ' TODO: *** Comprobar si es Inherits o Implements ***
            Inherits MailMessage

            Public fromName As String
            Public smtpServerName As String
            Public smtpUserName As String
            Public smtpUserPassword As String
            Public smtpServerPort As Integer
            Public smtpSSL As Boolean

            Public Sub New()
                fromName = String.Empty
                smtpServerName = String.Empty
                smtpUserName = String.Empty
                smtpUserPassword = String.Empty
                smtpServerPort = 25
                smtpSSL = False
            End Sub

            Public Sub Send()
                If smtpServerName.Length = 0 Then
                    Throw New Exception("SMTP Server not specified")
                End If

                If fromName.Length > 0 Then
                    Me.Headers.Add("From", String.Format("{0} <{1}>", fromName, From))
                End If

                ' set SMTP server name
                Me.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpServerName
                ' set SMTP server port
                Me.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = smtpServerPort
                Me.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

                If smtpUserName.Length > 0 AndAlso smtpUserPassword.Length > 0 Then
                    ' set SMTP Autentificacion
                    Me.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
                    ' set SMTP username
                    Me.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = smtpUserName
                    ' set SMTP user password
                    Me.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = smtpUserPassword
                End If

                ' ssl if needed
                If smtpSSL Then
                    Me.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true")
                End If
                'http:'schemas.microsoft.com/cdo/configuration/
                SmtpMail.SmtpServer = smtpServerName
                SmtpMail.Send(Me)

            End Sub

        End Class

    End Namespace

    ----------------------------------------------------------------------------------

    Desde un Modulo 

                

    Public Function CorreoPermisosyVac(ByVal pmensaje As String, ByVal ppersona As String, ByVal psupervisor As String, ByVal ptipo As String)
            Try
                Dim obj As New Libreria.Libreria
                Dim porigen As String = obj.DevuelveCorreoPersonal(xregistro.dato, vidpersona)

                Smtp = obj.ServidorCorreo(xregistro.dato) '"smtp.gmail.com"
                Port = "465" '"587"
                User = "siim.peru@plan-international.org.pe" '"siimperuplan@gmail.com"
                Pass = "xxxxxxxxxx"
                'eorigen = "Carlos.Caballero@plan-international.org"
                'edestino = "TuCorreo@plan-international.org"

                If Smtp.Trim <> "" Then
                    'Dim obj As New Libreria.Libreria
                    Dim msg As New EnvioMail.EnvioMail.EnvioMail
                    msg.From = porigen.Trim ' "siim.peru@plan-international.org.pe";
                    msg.fromName = ppersona.Trim '"Carlos Caballero"
                    msg.To = psupervisor.Trim '"Carlos.Caballero@plan-international.org" '"siimperuplan@gmail.com";
                    msg.Cc = porigen.Trim
                    msg.Subject = "Solicitud de " & ptipo.Trim '"Mensaje Prueba"
                    msg.Body = ppersona.Trim & " ha generado una solicitud de " & pmensaje.Trim & " y esta a la espera de su aprobación."
                    msg.smtpServerName = smtp.Trim '"mail.plan-international.org.pe";
                    msg.smtpUserName = User.Trim '"siim.peru@plan-international.org.pe"
                    msg.smtpUserPassword = Pass.Trim '"xxxxxxxxxxxx"
                    msg.smtpServerPort = Port.Trim
                    msg.smtpSSL = True
                    msg.Send()
                Else
                    MessageBox.Show("No existe Servidor de Correo", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If

            Catch ex As Exception
                MessageBox.Show(ex.Message, "Error de Mensajeria", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End Try

    ----------------------------------------------------------------------------------

    Desde un formulario

    Sub Main

     enviocorreo(vidpersona)

     Me.Close()

    End Sub

     Private Function enviocorreo(ByVal pidpersona As String)
            Dim dtjefe As DataTable = obj.DevuelveJefeSubordinado(xregistro.dato, pidpersona)
            If dtjefe.Rows.Count > 0 Then
                Dim vsuperior As String
                vsuperior = "" & obj.DevuelveCorreoPersonal(xregistro.dato, dtjefe.Rows(0)("superior"))
                If vsuperior.Trim <> "" Then
                    If dtgoce1.Value.Month = dtgoce2.Value.Month Then
                        CorreoPermisosyVac("Vacaciones de el " & "01/08/2016" & " al " & 20/08/2016" & " , por 20 dias",    & Trim(dtjefe.Rows(0)("Apellidos")) & ""&Trim(dtjefe.Rows(0("Nombres")),vsuperior.Trim,"Vacaciones")
                    End If
                Else
                    MessageBox.Show("Jefe Inmediato Superior no tiene Registro de Correo Electronico. No se procesara envio de Correo Automatico", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)
                End If
            Else
                MessageBox.Show("Usuario Solicitante no tiene Dependencia de alguna Jefatura. No se generara Envio automatico de Correo", obj.MensajeAlerta, MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If

        End Function

    Saludos


    Carlos Caballero


    viernes, 5 de agosto de 2016 13:58