L'équipe du Zend Framework nous a encore une fois facilité la tâche en créant Zend_Mail. On crée l'instance en y spécifiant l'encodage désiré. Ensuite, on configure les différentes propriétés et on y ajoute l'attachement avec la fonction createAttachment(). Comme cette fonction est appelée de l'instance, le fichier est automatiquement lié à l'objet $mail référencé et fera parti de l'envoi lors de l'appel de send().
$mail = new Zend_Mail('UTF-8');
// propriétés
$mail->setFrom('email');
$mail->addTo('email');
$mail->setSubject('Le sujet');
$mail->setBodyHtml('Bla bla bla...');
// créer l'attachement
$file = $mail->createAttachment(file_get_contents($_FILES['file_to_upload']['tmp_name']));
$file->type = $_FILES['file_to_upload']['type'];
$file->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
$file->filename = $_FILES['file_to_upload']['name'];
$mail->send();Dans l'exemple ci-dessus, le fichier est transféré à partir d'un formulaire web, d'où l'utilisation de l'array PHP $_FILES mais il pourrait tout aussi bien provenir de l'espace de stockage sur le serveur. Quand vous transférez un fichier, n'oubliez pas de spécifier le enctype multipart/form-data comme dans le formulaire suivant:<form method="post" enctype="multipart/form-data">Avez-vous une solution plus claire à proposer ?
<label for="file_to_upload">Fichier en attachement</label>
<input type="file" name="file_to_upload" id="file_to_upload" value="" />
<input type="submit" name="btn" id="btn" value="Envoyer" />
</form>
Aucun commentaire:
Publier un commentaire