elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Clase o modulo para enviar correo gmail/hotmail/yahoo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Clase o modulo para enviar correo gmail/hotmail/yahoo  (Leído 6,702 veces)
**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Clase o modulo para enviar correo gmail/hotmail/yahoo
« en: 10 Febrero 2018, 18:14 pm »

Hola , como dice el titulo alguien posee algún Buen code en VB.NET 2010 para enviar correos?

Bueno Tengo este modulo que encontre en internet pero no sirve :

Código
  1. Imports System.Net
  2. Imports System.Net.Mail
  3.  
  4. Module Correo
  5.  
  6.    Private correos As New MailMessage
  7.    Private envios As New SmtpClient
  8.  
  9.    Sub enviarCorreo(ByVal emisor As String, ByVal password As String, ByVal mensaje As String, ByVal asunto As String, ByVal destinatario As String)
  10.        Try
  11.            correos.To.Clear()
  12.            correos.Body = ""
  13.            correos.Subject = ""
  14.            correos.Body = mensaje
  15.            correos.Subject = asunto
  16.            correos.IsBodyHtml = True
  17.            correos.To.Add(Trim(destinatario))
  18.  
  19.            correos.From = New MailAddress(emisor)
  20.            envios.Credentials = New NetworkCredential(emisor, password)
  21.  
  22.            'Datos importantes no modificables para tener acceso a las cuentas
  23.  
  24.            envios.Host = "smtp.gmail.com"
  25.            envios.Port = 587
  26.            envios.EnableSsl = True
  27.  
  28.            envios.Send(correos)
  29.            MsgBox("El mensaje fue enviado correctamente. ", MsgBoxStyle.Information, "Mensaje")
  30.  
  31.        Catch ex As Exception
  32.            MessageBox.Show(ex.Message, "Mensajeria 1.0 vb.net ®", MessageBoxButtons.OK, MessageBoxIcon.Error)
  33.        End Try
  34.  
  35.    End Sub
  36.  
  37. End Module
  38.  
  39.  


En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #1 en: 10 Febrero 2018, 19:03 pm »

Lee aquí:
Sobre todo lee la advertencia que hago sobre las 'aplicaciones menos seguras' de Google, ya que probablemente sea el motivo por el que no te funciona tu código.

Al final de mi comentario encontrarás dos clases completas con métodos de envío síncronos y asíncronos para GMail y Outlook/Live.com, escribí muchos overloads para cubrir (casi)todos los posibles escenarios de utilización.

EDITO: para enviar un correo por Yahoo, simplemente busca en Google la información del servidor SMTP (el hostname y el puerto) y lo adaptas al código del SMTP de Google y Microsoft Live.

Saludos!


« Última modificación: 10 Febrero 2018, 19:41 pm por Eleкtro » En línea



**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #2 en: 10 Febrero 2018, 23:32 pm »

HOLA, bueno el el link :
Re: Como puedo enviar mails masivos con archivos adjuntos

lo intente con el codigo que esta hay pero sale lo mismo que el codigo que puse arriba :



Citar

bueno eso ya me lo esperaba , entonces vi las 2 clases  que le dejaste (hotmail y gmail) solo necesito la de gmail esta : https://pastebin.com/wLHNr0rn

entoces cree una clase con el nombre de MailUtil pero en la parte de :

Código
  1. Partial Public NotInheritable Class MailUtil : Inherits AestheticObject

me subralla la palabra : "AestheticObject"  y dice que :

Código:
"El tipo AestheticObject no esta definido"
En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #3 en: 11 Febrero 2018, 00:02 am »

Código
  1. Inherits AestheticObject

Esa herencia debes eliminarla, simplemente borra eso y te funcionará. El código lo copié diréctamente de mi framework sin hacerle modificaciones, y la clase 'AestheticObject' no la copié/compartí.

saludos!
« Última modificación: 11 Febrero 2018, 00:04 am por Eleкtro » En línea



**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #4 en: 11 Febrero 2018, 00:26 am »

 :-\ ahora me sale 1 error al intentar usarlo asi  :

como lo intento usar :
Código
  1. SendGMailText("Username@Gmail.com", "Password", "Email Subject", "Message Body", "Address@Server.com")

el Error:

Código:
'SendGMailText' no está declarado.

creo que cree mal la clase , no se si es mucho pedir pero , me podriar dar algunos breves pasos a seguir?
En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #5 en: 11 Febrero 2018, 00:38 am »

creo que cree mal la clase , no se si es mucho pedir pero , me podriar dar algunos breves pasos a seguir?

¿Como que "creaste" mal la clase?. La clase NO es instanciable, simplemente llama al método mediante su namespace:

Código
  1. NAMESPACE_DE_TU_PROGRAMA.NET.Tools.MailUtil.SendGMailText( ...parámetros... )

Saludos
En línea



**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #6 en: 11 Febrero 2018, 01:12 am »

arggg . ahora lo puse así :

Código
  1. SystemOS.NET.Tools.MailUtil.SendGMailText("grup.fisica.638@gmail.com", "*", txtAsunto.Text, rtbMensaje.Text, "maria7diaz@hotmail.com")

pero cuando depuro al presionar el botón que contiene el code  :


En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #7 en: 11 Febrero 2018, 03:13 am »

Vaya, esta vez si que ha sido un fallo mio, no tuyo. :P

aquí tienes el código corregido, copiar y listo... no tienes que borrarle nada esta vez.


EDITO:
Ah, por cierto, elimina del código las condicionales de compilación...

la linea donde pone:
Código:
#If NET45 OrElse NET46 Then
y:
Código:
#End If

...si quieres poder utilizar los métodos asíncronos también.



El fallo era que precisamente esa sobrecarga que usas (y algunas otras más), al no especificar ningún archivo adjunto, le termina pasando una colección de archivos adjuntos nula al método principal 'SendGMail", y este intenta leer la colección nula, provocando así una excepción de referencia nula...

Código
  1. Private Shared Sub SendGMail(ByVal username As String,
  2.                             ByVal password As String,
  3.                             ByVal subject As String,
  4.                             ByVal body As String,
  5.                             ByVal addresses As MailAddressCollection,
  6.                             ByVal attachments As Collection(Of Attachment),
  7.                             ByVal isBodyHtml As Boolean)
  8.  
  9. ...
  10. For Each attachment As Attachment In attachments
  11.    msg.Attachments.Add(attachment)
  12. Next attachment
  13. ...

¿Solución?, fácil:
Código
  1. If (attachments IsNot Nothing) Then
  2.    For Each attachment As Attachment In attachments
  3.        msg.Attachments.Add(attachment)
  4.    Next attachment
  5. End If

PD: existe el mismo fallo de diseño en la clase que envia correos por live/hotmail.

saludos
« Última modificación: 11 Febrero 2018, 03:31 am por Eleкtro » En línea



**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #8 en: 11 Febrero 2018, 13:25 pm »

hola , bueno el error se soluciono pero ahora me sale un error , (el error que me salia con los primeros codes que intente)

"Authentication Required"  bueno esto ya creo que es el Servidor Gmail , alguna solución?

En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Clase o modulo para enviar correo gmail/hotmail/yahoo
« Respuesta #9 en: 11 Febrero 2018, 14:54 pm »

Repito de nuevo:

Lee aquí:
Sobre todo lee la advertencia que hago sobre las 'aplicaciones menos seguras' de Google, ya que probablemente sea el motivo por el que no te funciona tu código.

...aclara si ya habilitaste el uso de aplicaciones menos seguras. Comprueba que el nombre de usuario y contraseña sean correctos, y prueba acctivando y desactivando la conexiónn segura (SmtpClient.EnableSsl) en el método que envía el email.

saludos
En línea



Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Clase para enviar Correo desde Java [by BadDevil] « 1 2 »
Java
Pablo Videla 14 11,921 Último mensaje 6 Agosto 2009, 02:54 am
por Pablo Videla
Gmail permite importar correos de hotmail.es y yahoo.es
Noticias
wolfbcn 5 6,755 Último mensaje 22 Marzo 2011, 18:21 pm
por Novlucker
Gmail, Hotmail y Yahoo! son vetados en Irán
Noticias
wolfbcn 0 1,526 Último mensaje 14 Mayo 2012, 21:16 pm
por wolfbcn
Busco un codigo VB6 para enviar correo por hotmail
Programación Visual Basic
worldnirvana 1 2,039 Último mensaje 18 Agosto 2015, 04:24 am
por ThunderCls
Gmail vs Hotmail (Outlook), cuál es mejor para tu correo electrónico gratis
Noticias
wolfbcn 1 3,829 Último mensaje 23 Marzo 2019, 22:52 pm
por gabriel1995
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines