Mejorando el tratamiento de los emails

Mejorando el tratamiento de los emails

Postby paquitohm » Tue Jul 23, 2024 2:48 pm

Buenas a todos,

¿ Alguien trata en sus programas los emails con esta sintaxis-ejemplo ?

Paco Pérez <pacoperez@suempresa.com>

¿ O incluso de la siguiente forma ?

Juan María Vianney <juanma@suempresa.com>;Pedro Luis Soler<soler@otraempresa.com>;Luis María Grigñon <Luisma@renew.com>
paquitohm
 
Posts: 266
Joined: Fri Jan 14, 2022 8:37 am

Re: Mejorando el tratamiento de los emails

Postby karinha » Tue Jul 23, 2024 3:18 pm

Yo hago asi,

Code: Select all  Expand view  RUN

// Conta do Email
FUNCTION CHECA_GET_CONTA( cEMAILNOCONTA, aGet )   // mudei em: 14/08/2014

   LOCAL cContaUsuario, cNomeUsuario
   // LOCAL cRegEx := "^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$"  // ou:
   LOCAL cRegEx := "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"
   LOCAL lIsValid := .F.

   PUBLIC cNomeUsuFinal

   IF GETASYNCKEY( VK_UP )
      RETURN( .T. )
   ENDIF

   IF EMPTY( cEMAILNOCONTA )  // = a XEMAILNOCONTA

      // Mensageria

      RETURN( .F. )

   ENDIF

   #IFDEF __XHARBOUR__  //

      // if xHarbour -> Funciona perfecto.

      IF ( ALLTRIM(LOWER( cEMAILNOCONTA ) ) LIKE cRegEx )
         lIsValid := .T.
      ELSE

         // Mensageria

      ENDIF

   #ELSE

      IF ( HB_REGEXLIKE( ALLTRIM( LOWER( cEMAILNOCONTA ) ), cRegEx )  )
         lIsValid := .T.
      ELSE

         // Mensageria

      ENDIF

   #ENDIF


RETURN( lIsValid )

FUNCTION VER_EMAIL_ERRADO( cDest )

   LOCAL cRegEx := "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"
   //LOCAL cRegEx := "[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}"
   LOCAL cRet

   IF EMPTY( cDest )

      // Mensageria

      RETURN( .F. )

   ELSE

      // Destinatario do Email a Enviar
      cDest := LOWER( cDest )

      cRet := HB_AtX( cRegEx, cDest, .F. )

      IF cRet != ALLTRIM( cDest ) .OR. .NOT. ( "@" $ cDest .AND. "." $ cDest )

            // Mensageria

            RETURN( .F. )

      ENDIF

      IF AT( " ", ALLTRIM( cDest ) ) > 0

         IF AT( ";", ALLTRIM( cDest ) ) > 0
            // NADA A FAZER, CONTEM + DE 1 EMAIL NO PLENO
         ELSE

            // Mensageria

            RETURN( .F. )

         ENDIF

      ENDIF

   ENDIF

RETURN( .T. )
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Mejorando el tratamiento de los emails

Postby paquitohm » Tue Jul 23, 2024 3:47 pm

Hola Karinha

Gracias por el aporte. Ese tema, el de validacion lo tengo más o menos resuelto para emails simples xxxxxx@xxxxx.com

{2,4}
4 para dominio es poco. Habria que poner 63

Lo que yo planteo es si alguno de vds. vosotros utilizan el formato "normal" o extendido y sencillo o multiple separado por ; ?

Salu2
paquitohm
 
Posts: 266
Joined: Fri Jan 14, 2022 8:37 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: jmartial and 73 guests