Cómo guardar adjuntos con Zend_Mail

Éste ejemplo funciona para mails multipart que codifican los adjuntos en base64. Tengo entendido que podrían venir codificados de otras maneras. Pero en los ejemplos que probamos funcionaban bien. Utilizamos Zend_Mail que es parte del Zend Framework.

<?
$mail = new Zend_Mail_Storage_Pop3(array('host' => 'pop3.cocotero.net',
'user' => 'usuario$cocotero.net',
'password' => 'clave'));
$message = $mail->getMessage(1);

//zend mail cogerá todos los mensajes,para éste ejemplo nos quedamos con el primero

//un mail llega en diferentes "partes". Nosotros buscamos el adjunto
$part = $message->getPart(1);

//esto es lo que más nos costó, descubrir que viene codificado y que hay que descodificarlo

$file_content = base64_decode($part->getContent());

$nombre_archivo = '/pathdondeguardar/nombrearchivo.ext';

$contenido = $file_content;

// Asegurarse primero de que el archivo existe y puede escribirse sobre él.
if (is_writable($nombre_archivo)) {
if (!$gestor = fopen($nombre_archivo, 'a')) {
// echo "No se puede abrir el archivo ($nombre_archivo)";
exit;
}

// Escribir $contenido a nuestro arcivo abierto.
if (fwrite($gestor, $contenido) === FALSE) {
//echo "No se puede escribir al archivo ($nombre_archivo)";
exit;
}

fclose($gestor);

} else {
echo "No se puede escribir sobre el archivo $nombre_archivo";
}

 

 

 

Etiquetas:

Buscador hispano de Zend Framework:.

Comenta el articulo:

Requerido

Requerido,