Page 1 of 1

Validar si existe un email

Posted: Thu Mar 19, 2020 1:12 pm
by Marcelo Roggeri
Hola buenos dias al foro, tengo la necesidad de validar (como bien dice el asunto) una casilla de email, si existe o no.
Cuando enviamos un email que no existe el email sale, pero nos devuelve otro email diciendo que no existe ese email.
Bueno la pregunta es: se puede saber eso? tal vez teniendo conocimiento de la API de google o del servidor que sea Yahoo también, y si fuera un email con dominio propio?
Espero que me hallan entendido y que algún experto sepa como hacerlo
Gracias desde Argentina. Marcelo

Re: Validar si existe un email

Posted: Fri Mar 20, 2020 6:12 pm
by jvtecheto
Hola Marcelo.
Yo creo que eso solo se puede comprobar con una Api, ya que se necesita acceder a la web, yo creo que está es gratuita.

https://wwwhatsnew.com/2015/11/29/email ... lido-o-no/

Adaptarla a Fivewin con una clase seria ya otro cantar., pero esta Cristóbal que es un experto en APIS sería un buen añadido para Fivewin.

Saludos.

Jose

Enviado desde mi POCOPHONE F1 mediante Tapatalk

Re: Validar si existe un email

Posted: Fri Mar 20, 2020 8:44 pm
by Marcelo Roggeri
Gracias Esteban, veré que sale de esta inquietud, creo que seria un lindo paso para la validación de email.
Saludos

Re: Validar si existe un email

Posted: Fri Mar 20, 2020 8:47 pm
by cnavarro
Prueba esto

Code: Select all

Function EsValidoMail( cMail )
local oApi
local cResponse
oApi := CreateObject( "MSXML2.XMLHTTP" )

oApi:Open( "GET", "https://garridodiaz.com/emailvalidator/index.php/?email=" + cMail )
oApi:SetRequestHeader( "Content-Type", "application/json" )
oApi:Send()
cResponse := oApi:ResponseText()
? cResponse
Return cResponse
 
Si alguien lo prueba que diga si funciona, porque lo he hecho del "tirón" y no lo he probado

Re: Validar si existe un email

Posted: Fri Mar 20, 2020 9:26 pm
by Armando
Cristóbal:

Tira este mensaje

Error description: (DOS Error -2147352567) WINOLE/1007 El dato necesario para completar esta operación no está disponible todavía.
(0x8000000A): msxml3.dll

Saludos

Re: Validar si existe un email

Posted: Fri Mar 20, 2020 9:31 pm
by cnavarro
Ya lo he visto. Un poco más tarde lo pruebo y os digo

Re: Validar si existe un email

Posted: Fri Mar 20, 2020 9:36 pm
by cnavarro
De todas formas, la comprobación no es completa.
Sólo comprueba si el servidor es correcto, y algunas cosas más pero si el "recipiente" como tal existe, no estoy tan seguro que sea fiable la comprobación
Esto es lo que tienen las apis gratuitas

Re: Validar si existe un email

Posted: Sat Mar 21, 2020 12:40 am
by Cgallegoa
Marcelo:

Crea una cuenta gratuita en https://www.ipqualityscore.com/.

Te enviarán un email con tu API kEY y esa la digitas en el siguiente ejemplo:

Code: Select all

#include "FiveWin.ch"

Function Inicio()
  LOCAL cTime, aToolTip[15]
  LOCAL oDlg, oBtn[15] oFont1, oFont2
  LOCAL cEmail := PADR("gatolucido@gmail.com",100,"")

  DEFINE DIALOG oDlg FROM 0,0 TO 200,430 TITLE "Email verification JSON API REST" PIXEL COLORS nRGB(0,0,0),nRGB(255,255,255) TRANSPARENT

     @ 10,10 SAY "email to verify:" OF oDlg PIXEL
     @ 09,50 GET cEmail OF oDlg PIXEL SIZE 150,10

     @ 030,70 BUTTON oBtn[ 1] PROMPT "Verify email."       OF oDlg PIXEL SIZE 75,18 ACTION Api_GetFactura01(AllTrim(cEmail))

     @ 060,70 BUTTON oBtn[10] PROMPT "Exit" OF oDlg PIXEL SIZE 75,18 ACTION oDlg:End()

  ACTIVATE DIALOG oDlg CENTERED
Return(NIL)
//===================================================================//

Function Api_GetFactura01(cEmail)
  LOCAL hResponse
  LOCAL oSoap := CreateObject( "MSXML2.ServerXMLHTTP.6.0")
  LOCAL cParam := ""
  LOCAL cUrl  := "https://www.ipqualityscore.com/api/json/email/"
  LOCAL cApi_Key := "aqui_la_api_key_que_te_enviaron"

  if Empty(cEmail)
     return(NIL)
  endif

  cParam := cApi_Key + "/" + cEmail

  oSoap:Open( "GET" , cUrl+cParam , .F. )
  oSoap:SetRequestHeader( "Content-Type", "application/json" )

  oSoap:Send()

  hResponse := oSoap:responseText
  hb_jsondecode( hResponse, @hResponse )
  HSetCaseMatch( hResponse, .F. )

  xBrowse( hResponse , "JSon Response => Valid:   " + cValToChar(hResponse:valid) + "  ;  Success:   " + cValToChar(hResponse:success))

Return(NIL)
//===================================================================//
 

Re: Validar si existe un email

Posted: Sat Mar 21, 2020 2:40 pm
by Marcelo Roggeri
Muchas gracias Carlos, voy a probar y luego comento
Saludos

Re: Validar si existe un email

Posted: Sat Mar 21, 2020 9:31 pm
by Marcelo Roggeri
Ya lo probe Carlos, anda bien, salvo un par de veces que no me validaba bien, tengo que hacer otras pruebas y comento.
Saludos. Mil gracias. Marcelo