Page 1 of 1

Mejorando el tratamiento de los emails

Posted: Tue Jul 23, 2024 2:48 pm
by paquitohm
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>

Re: Mejorando el tratamiento de los emails

Posted: Tue Jul 23, 2024 3:18 pm
by karinha
Yo hago asi,

Code: Select all | Expand

// 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.

Re: Mejorando el tratamiento de los emails

Posted: Tue Jul 23, 2024 3:47 pm
by paquitohm
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