![]() |
Cómo estrujarse las meninges con la función "email"
1 Archivos Adjunto(s)
Hola,
Hasta hoy hacía uso de una sencilla clase "Email" que encapsulaba básicamente a la función "email" de PHP. El caso es que me puse sobre ella un poco y al cabo terminó en esto... Nota: la copio por aquí por si alguien quiere echarla un vistazo e incluso, por qué no, utilizarla. Evidentemente hay otras formas de enviar correo vía PHP, y existen no pocas clases (estupendas) y librerías, scripts, etc., etc. :) Nota 2: Iba a copiar aquí mismo el código fuente, pero, no es posible porque ha de contener algo que el sistema de seguridad del Foro no deja pasar. Bueno. Entonces adjunto el código fuente en el archivo de marras. Pasa nada. :D |
Hola
No veo que hayas tenido en cuenta la inyección de cabeceras que permite la función mail, podías aprobechar y filtrar el parámetro "remitente" para evitar lo. |
Hola,
Hum... ¿filtrarlo cómo? Hay que entender que la clase no valida la entrada del usuario. Es decir, que se añadirá una dirección de remitente, pero, esta ha de ser validada previamente por quien vaya a utilizar la clase Email. Pero estoy abierto a todo tipo de sugerencias Kayetano. :) |
Hola dec
El problema es que la función mail() tiene un pequeño problema y es que se pueden añadir cabeceras que modifiquen parcial o totalmente el correo original, cosa que puede ser aprobechada por los SPAMERS, esto lo comenté en su momento en este hilo. Este problema no es una validación tipico de si el correo esta compuesto por: Código:
caracteres + el simbolo @ + caracteres + un punto + [2-3] caracteres Pienso yo :) |
Hola,
A ver. Tal como lo tengo en la cabeza el problema redica en la dirección "remitente", que se incluye en la cabecera correspondiente: porque la dirección del destinatario, así como el cuerpo y el asunto del correo no se incluyen en la cabecera. Si esto es así lo que hay que comprobar sin duda es si dicha dirección de correo remitente es una dirección de correo válida y no nada más. Cuento con una clase "Validar" que incluye un método capaz de averiguar si una cadena puede ser una dirección de correo bien formada. Dicho método no se tragará esto: Código:
direccion@correo.es\nXXX Gracias Kayetano por tus comentarios. :) |
Hola
Cita:
Pues bien si es aconsejable validarlo en PHP y siempre antes de la función mail() pues quedaría muy bien integrarlo en la clase que has creado para que esta comprobación (obligatoria) sea transparente para el usuario de la clase. Esto es una simple recomendación, ya lo he comentado algunas veces, cuando me pongo con algo me gusta hacerlo lo mejor posible y eso intento inculcar en este foro. |
Hola,
Si llevas razón Kayetano. O eso pienso. Desde luego es algo que tengo que añadir a la clase Email. Seguramente no pienso demasiado en que vaya a utilizar esta clase mucha gente... es más bien para uso particular de quien suscribe. :) Pero llevas razón. Y no está para nada demás hacerlo como dices, y así se hará te lo aseguro. ;) Actualización: edité el código de la clase ya con un método de validación. No lo actualizaré en sucesivas ocasiones, puesto que esta clase tendrá acaso otras posibles mejoras/correcciones. La idea de copiarla por aquí no era tanto presentar la octava maravilla del mundo en clases PHP sino bueno... ver si podía servir a alguien, pero, no le vamos a hacer seguimiento, ¿de acuerdo? Pues eso. :) |
La franja horaria es GMT +2. Ahora son las 07:32:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi