11
votes

DOMPDF - Attachez PDF créée à l'e-mail

Quel est le moyen le plus simple d'attacher un fichier PDF à un courrier électronique via DOMPDF?

La fin de mon script que j'utilise (une partie de celle-ci) est ci-dessous: xxx < P> Just pour clarification - Ceci est utilisé dans Joomla.

Appréciez le moyen le plus simple / plus rapide en utilisant la fonction de messagerie PHP standard.

acclamations; -) >


1 commentaires

3 Réponses :


0
votes

La fonction mail de PHP n'a pas de méthode de fixation de fichier « standard ». Il est un barebone extrêmement interface avec le système SMTP qui vous oblige à faire tout le travail d'attacher un fichier vous-même.

Je suggère fortement d'utiliser PHPMailer ou Swiftmailer pour faire l'e-mail pour vous - il réduit le travail de grunt lourd de générer votre propre e-mail MIME et insérer la pièce jointe (beaucoup de lignes de code) ne peut-être à 5 lignes au total .

Notez que aucun d'entre eux se chargera un cams PDF à partir dompdf. Vous devez enregistrer le PDF dans un fichier temporaire et attachez que,


1 commentaires

Merci pour la réponse ... Alors, comment puis-je faire ça?



28
votes

OK. Vous avez déjà accepté une réponse, mais pour quelqu'un d'autre qui vient ici, je pense qu'il est plus facile, mais il n'est donc pas non plus la fonction de courrier standard de PHP, ce qui ne va vraiment pas fonctionner. Si vous pouvez obtenir les packages de paires Mail and Mail_Mime, il est vraiment facile d'envoyer des courriels avec des pièces jointes. Vous pouvez également joindre directement la sortie DOMPDF sans créer de fichier, comme:

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper("letter", "portrait" );
$dompdf->render();

$output = $dompdf->output();

$mm = new Mail_mime("\n");

$mm->setTxtBody($body);
$mm->addAttachment($output,'application/pdf','output.pdf', false);

$body = $mm->get();
$headers = $mm->headers(array('From'=>$from,'Subject'=>$subject));

$mail =& Mail::factory('mail');
if($mail->send($to,$headers,$body)){
    echo "Your message has been sent.";
}


0 commentaires

1
votes

Voici la solution que je cherchais quand je suis venu ici:

au lieu de: p> xxx pré>

fais cela: p> xxx Pré>

et que d'envoyer des messages avec PHPMailer et attachez le PDF à la mail de même: P>

        $filename = 'MyDocument.pdf';
        $encoding = 'base64';
        $type = 'application/pdf';

        $mail->AddStringAttachment($fileatt,$filename,$encoding,$type);


0 commentaires