PHP: ¿Cómo enviar un mail con archivos adjuntos (attachments)?
Monday June 12th 2006, 1:00 pm
Filed under:
PHP
Este pequeño ejemplo que escribí muestra cómo enviar mail desde PHP incluyendo archivos adjuntos.
Lo primero que hacemos es generar la hoja HTML que tendrá la forma de envío. Los campos ilustrativos que vamos a usar para fines de éste ejemplo son nombre, e-mail, comentario y el archivo que deseamos adjuntar.
Archivo forma.html:
HTML:
-
<form action = "envia_mail.php" method="post" enctype="multipart/form-data" name="form">
-
<input type="text" name="nombre"/>
-
<input type="text" name="email"/>
-
<input type="text" name="comentario"/>
-
<input type="file" name="file"/>
-
</form>
De éste código lo único que sobresale es que como en todos los casos donde se envía un archivo a través de una forma, al tag
¿Cómo enviar mail en php si el servidor no soporta la funcion mail() (ej. Prodigy Hosting)?
Friday April 07th 2006, 12:15 am
Filed under:
PHP
Un problema muy común para algunos diseñadores web que no tienen amplia experiencia en programación es que tratan de instalar un formulario que envía a e-mail basandose en un script con la función de mail() de PHP y se topan con que el servidor no tiene configurado el programa de envío (sendmail) y por lo tanto, los correos no logran enviarse. Esto sucede en algunas compañías de hosting (por ejemplo Prodigy Hosting en México) o cuando el administrador del servidor no sabe como configurar PHP para envíar correos (en el archivo php.ini).
La solución más práctica es implementar el envío por medio de conexión directa a un servidor SMTP. Para ésto se necesitan básicamente dos cosas:
1.- El nombre de usuario, password y servidor SMTP de una cuenta de correo electrónico existente, y...
2.- Un script de PHP para envíar correo através de SMTP como el que se encuentra en: http://www.phpguru.org/downloads/smtp/
El archivo mencionado anteriormente debe de ser descargado y luego descomprimido (Mediante WinRAR, por ejemplo). Una vez descomprimido se encontrarán en él dos archivos: smtp.class.inc y example.php
Es necesario editar en el archivo example.php (que va a ser el que reciba la forma de envío de mail), lo siguiente: los campos del servidor SMTP, el login del mail, el password, el correo de destino así como las variables que reciben el mensaje desde la forma de envío. Todo esto puede sonar un poco complicado pero es bastante intuitivo una vez que se abre el archivo en un editor de texto. No hay nada que deba editarse en la clase smtp.