No puedes evitar que los pájaros vuelen en torno a tu cabeza, pero sí puedes impedir que hagan su nido en tus cabellos.Proverbio budista
Blog EnFaseTerminal es un Blog de tecnología que ofrece consejos y resúmenes sobre los últimos temas de tecnología, como seguridad cibernética, privacidad, hardware y software. Nuestros artículos son escritos por un equipo de expertos en tecnología que están comprometidos a proporcionar a sus lectores la información que necesitan para tomar decisiones informadas sobre su tecnología. Visite Blog EnFaseTerminal para obtener más información y estar al día con las últimas tendencias en tecnología.
No puedes evitar que los pájaros vuelen en torno a tu cabeza, pero sí puedes impedir que hagan su nido en tus cabellos.
De todas las reacciones posibles ante una injuria, la más hábil y económica es el silencio.
De todas las reacciones posibles ante una injuria, la más hábil y económica es el silencio.Santiago Ramón y Cajal
Todas las guerras son santas, os desafio a que encontreis un beligerante que no crea tener el cielo de su parte.
Todas las guerras son santas, os desafio a que encontreis un beligerante que no crea tener el cielo de su parte.Jean Anouilh
Como enviar correo electronico con archivo adjunto en PHP
Como enviar un correo electrónico con archivos adjuntos con PHP 📨.
Puede ser que necesitemos crear una función para enviar un correo electrónico con un archivo adjunto, como respuesta a un formulario o para realizar publicaciones en otros servidores.
Si utilizamos una plataforma que en al que podemos programar y ejecutar PHP debemos asegurarnos que se encuentre instalado sendmail.
Si somos el administrador de nuestro propio servidor, podremos instalarlo desde el terminal:
sudo apt-get install sendmailSi somos invitados en el servidor, lanzaremos un script para comprobar si podemos utilizar la función mail:
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL ); //Comprobaremos si ha sido enviado o no
$from = "TU CORREO ELECTRONICO"; //La dirección de correo desde que la enviamos
$to = "DESTINATARIO"; //Dirección de correo a la que enviamos el mail
$subject = "Probando PHP mail"; //Encabezado del correo
$message = "PHP mail funciona correctamente"; //El mensaje
$headers = "From:" . $from; //Cabecera que dejamos tal cual
mail($to,$subject,$message, $headers); //Enviamos el correo
echo "The email message was sent."; //Confirmamos que el correo ha sido enviado
?>
Si hemos recibido el correo, podremos continuar con la programación de nuestra función.
//Recipiente
$to = 'DESTINATARIO'; //A quien le enviamos nuestro correo
//remitente del correo//Desde que correo le envamos y quien será el destinatario de la respuesta si lo hubiera
$from = 'NUESTRO CORREO ELECTRONICO';
$fromName = 'UN NOMBRE, O NICK DESCRIPTIVO'; //Quienes somos o nuestra organización
//Asunto del email
//Utilizamos la función utf8_decode() para que nos reconozca las tildes y la ñ, entre otros caracteres$subject = utf8_decode('ASUNTO DEL CORREO');
//Ruta del archivo adjunto
$file = 'DIRECCIÓN GLOBAL DEL ARCHIVO QUE VAMOS A ENVIAR';
//Contenido del Email
//La función htmlentities() nos convertira las tildes ñ y caracteres especiales en etindades HTML
$htmlContent = htmlentities('CONTENIDO DEL CORREO CODIFICADO EN HTML');
//Encabezado para información del remitente
$headers = "De: $fromName"." <".$from.">";
//Limite Email
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
//Encabezados para archivo adjunto
$headers .= "\n MIME-Version: 1.0 \n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
//límite multiparte
$message = "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . $htmlContent . "\n\n";
//preparación de archivo
if(!empty($file) > 0){
if(is_file($file)){
$message .= "--{$mime_boundary}\n";
$fp = @fopen($file,"rb");
$data = @fread($fp,filesize($file));
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: application/octet-stream; name=\"".basename($file)."\"\n" .
"Content-Description: ".basename($file)."\n" .
"Content-Disposition: attachment;\n" . " filename=\"".basename($file)."\"; size=".filesize($file).";\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
}
}
$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $from;
//Enviar EMail
$mail = @mail($to, $subject, $message, $headers, $returnpath);
Esta función requiere mucho tiempo de ejecución y no es recomendable para el envio masivo de correos electronicos.
Suscribirse a:
Entradas (Atom)