Conectar con gmail desde NET

Iniciado por FJDA, 18 Febrero 2017, 16:56 PM

0 Miembros y 1 Visitante están viendo este tema.

FJDA

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 (vbnet) [Seleccionar]
Imports Limilabs.Client.IMAP

Module Module1

   Private Const _server As String = "imap.gmail.com"
   Private Const _user As String = "USER"
   Private Const _password As String = "PASSWORD"

   Sub Main()
       Using imap As New Imap

           imap.ConnectSSL(_server, 993)

           ' imap.Connect(_server)                           ' Use overloads or ConnectSSL if you need to specify different port or SSL.

           imap.Login(_user, _password)                    ' You can also use: LoginPLAIN, LoginCRAM, LoginDIGEST, LoginOAUTH methods,
           ' or use UseBestLogin method if you want Mail.dll to choose for you.

           Dim folders As List(Of FolderInfo) = imap.GetFolders()      ' List all folders on the IMAP server

           Console.WriteLine("Folders on IMAP server: ")
           For Each folder As FolderInfo In folders

               Dim status As FolderStatus = imap.Examine(folder.Name)  ' Examine each folder for number of total and recent messages.

               Console.WriteLine(String.Format("{0}, Recent: {1}, Total: {2}", _
                   folder.Name, _
                   status.MessageCount, _
                   status.Recent))                                     ' Display folder information                
           Next

           ' You can also Create, Rename and Delete folders:
           imap.CreateFolder("Temporary")
           imap.RenameFolder("Temporary", "Temp")
           imap.DeleteFolder("Temp")

           imap.Close()
       End Using
         Console.ReadLine()
   End Sub

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:


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

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

Download emails using POP3 in .NET

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


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

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

z3nth10n

#1
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.

Interesados hablad por Discord.

FJDA

#2
Cita de: Ikillnukes 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:
...

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:

[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

3. Haz clic en "Aplicaciones y sitios conectados a tu cuenta":
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


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

Gracias por la ayuda



z3nth10n

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.

Interesados hablad por Discord.

FJDA

Cita de: Ikillnukes 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.

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

Eleкtro

#5
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:


Cita de: ElektroHace 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í:


Saludos

¡Saludos!.