Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: FJDA en 18 Febrero 2017, 16:56 pm



Título: Conectar con gmail desde NET
Publicado por: FJDA en 18 Febrero 2017, 16:56 pm
hola

Estoy intentado conectar con mi cuenta de correo GMAIL desde Net pero no hay manera.

Consiguo conectar pero el acceso es bloqueado y recibo un mensaje en el correo gmail notificando intentos de inicio de sesión bloquados.

El código que he usado es el siguiente:


Código
  1. Imports Limilabs.Client.IMAP
  2.  
  3. Module Module1
  4.  
  5.    Private Const _server As String = "imap.gmail.com"
  6.    Private Const _user As String = "USER"
  7.    Private Const _password As String = "PASSWORD"
  8.  
  9.    Sub Main()
  10.        Using imap As New Imap
  11.  
  12.            imap.ConnectSSL(_server, 993)
  13.  
  14.            ' imap.Connect(_server)                           ' Use overloads or ConnectSSL if you need to specify different port or SSL.
  15.  
  16.            imap.Login(_user, _password)                    ' You can also use: LoginPLAIN, LoginCRAM, LoginDIGEST, LoginOAUTH methods,
  17.            ' or use UseBestLogin method if you want Mail.dll to choose for you.
  18.  
  19.            Dim folders As List(Of FolderInfo) = imap.GetFolders()      ' List all folders on the IMAP server
  20.  
  21.            Console.WriteLine("Folders on IMAP server: ")
  22.            For Each folder As FolderInfo In folders
  23.  
  24.                Dim status As FolderStatus = imap.Examine(folder.Name)  ' Examine each folder for number of total and recent messages.
  25.  
  26.                Console.WriteLine(String.Format("{0}, Recent: {1}, Total: {2}", _
  27.                    folder.Name, _
  28.                    status.MessageCount, _
  29.                    status.Recent))                                     ' Display folder information                
  30.            Next
  31.  
  32.            ' You can also Create, Rename and Delete folders:
  33.            imap.CreateFolder("Temporary")
  34.            imap.RenameFolder("Temporary", "Temp")
  35.            imap.DeleteFolder("Temp")
  36.  
  37.            imap.Close()
  38.        End Using
  39.          Console.ReadLine()
  40.    End Sub
  41.  
  42. End Module


Desde mi cuenta gmail he habilitado el acceso IMAP. Y la configuración que gmail te recomienda para correo entrante es la siguiente:

Código:
Servidor de correo entrante (IMAP)	

imap.gmail.com
Requiere SSL: Sí
Puerto: 993

Ver: Leer mensajes de Gmail desde otros clientes de correo mediante IMAP (https://support.google.com/mail/accounts/answer/78754)

He usado la librería Mail.dll. Para más información entrar aquí:

Download emails using POP3 in .NET (https://code.msdn.microsoft.com/windowsdesktop/emails-using-POP3-882705d3)

y para descarga de la librería y ejemplos de uso aquí:
Mail.dll - .NET email component (IMAP, POP3, S/MIME) (https://www.limilabs.com/mail)


NOTA: Desde Windows Live ocurre exáctamente igual.

Gracias



Lo he testado desde una cuenta hotmail y  funciona. Hay que cambiar el servidor  IMAP por "imap-mail.outlook.com"



Volví a intentarlo usando POP3 Pero recibo el siguiente mensaje de error

Código:
[AUTH] Web login required: https://support.google.com/mail/answer/78754


Título: Re: Conectar con gmail desde NET
Publicado por: z3nth10n en 20 Febrero 2017, 23:41 pm
Ya no es cuestión de tu código que por otra parte seguramente esté bien (ya nos lo dirá nuestro moderador favorito cuando vuelva :laugh:), a mi me pasó lo mismo al configurar el SMTP de un WordPress, y lo que pasó fue lo siguiente:

(http://i.imgur.com/yG3zE6S.png)

Seguramente hayas recibido este correo, simplemente dandole a donde el circulo morado no deberás tener problema.

Cosas de seguridad de Google, en definitiva.

Un saludo.

MOD: Imagen adaptada a lo permitido.


Título: Re: Conectar con gmail desde NET
Publicado por: FJDA en 21 Febrero 2017, 10:50 am
Ya no es cuestión de tu código que por otra parte seguramente esté bien (ya nos lo dirá nuestro moderador favorito cuando vuelva :laugh:), a mi me pasó lo mismo al configurar el SMTP de un WordPress, y lo que pasó fue lo siguiente:
...

Seguramente hayas recibido este correo, simplemente dandole a donde el circulo morado no deberás tener problema.

Cosas de seguridad de Google, en definitiva.

Un saludo.

MOD: Imagen adaptada a lo permitido.
Si el código creo que está bien, como he comentado funciona con una cuenta hotmail y debería funcionar con gmail, sea usando IMAP o POP3.

Como comentas debe ser cosas de la seguridad de Google. Pudiera ser que detecta de alguna forma que no se está iniciando sesión desde el navegador.

Lo que recibo en el correo es exactamente lo que muestras en la imagen. Y el mensaje de error que genera el código es este:

Código:
[ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
([ALERTA] Inicie sesión a través de su navegador web)



SOLUCIONADO
Encontré la solución

Efectivamente era cosa de la seguridad de Google y el código estaba bien.

El problema estaba en que Google limita el acceso a aplicaciones no seguras. Para evitar eso existe una forma de desbloquear esta configuración de seguridad.

1. Inicia sesión Gmail desde tu navegador.

2. Dirígete a "Mi Cuenta": https://myaccount.google.com/?utm_source=OGB (https://myaccount.google.com/?utm_source=OGB)

3. Haz clic en "Aplicaciones y sitios conectados a tu cuenta":
https://myaccount.google.com/security?utm_source=OGB#connectedapps (https://myaccount.google.com/security?utm_source=OGB#connectedapps)

4. Habilita "Permitir el acceso de aplicaciones menos seguras"


(Diréctamente puedes acceder a este enlace desde una cuenta iniciada)
https://www.google.com/settings/security/lesssecureapps (https://www.google.com/settings/security/lesssecureapps)


Ahora se podrá acceder a la cuenta Gmail desde nuestra aplicación sin problemas.  ;)

Gracias por la ayuda




Título: Re: Conectar con gmail desde NET
Publicado por: z3nth10n en 21 Febrero 2017, 11:39 am
Claro, si me extrañaba mucho ese error. Además que al darle al enlace que te dije, te lleva precisamente al apartado que tu dijiste.

Un saludo.


Título: Re: Conectar con gmail desde NET
Publicado por: FJDA en 21 Febrero 2017, 11:48 am
Claro, si me extrañaba mucho ese error. Además que al darle al enlace que te dije, te lleva precisamente al apartado que tu dijiste.

Un saludo.

Si así es como di con la solución, muchas gracias  ;-) ;-) ;-)
.


Título: Re: Conectar con gmail desde NET
Publicado por: Eleкtro en 22 Febrero 2017, 05:02 am
Llego tarde. Te habría respondido lo mismo que el compañero @IKillNukes cuando compartí este código de ejemplo que publiqué hace un tiempo:

  • http://foro.elhacker.net/net/c_smtp-t419587.0.html;msg2074142#msg2074142

Cita de: Elektro
Hace ya bastante tiempo Google realizó unos cambios, y desde entonces para poder enviar correos electrónicos mediante SMTP primero debes habilitar una opción en la configuración de tu cuenta de GMail para permitir este tipo de aplicaciones. aquí:

  • https://www.google.com/settings/security/lesssecureapps

Saludos

¡Saludos!.