Comment utiliser TCPDF avec la fonction mail de PHP
$to = '[email protected]';
$subject = 'Receipt';
$repEmail = '[email protected]';
$fileName = 'receipt.pdf';
$fileatt = $pdf->Output($fileName, 'E');
$attachment = chunk_split($fileatt);
$eol = PHP_EOL;
$separator = md5(time());
$headers = 'From: Sender <'.$repEmail.'>'.$eol;
$headers .= 'MIME-Version: 1.0' .$eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"";
$message = "--".$separator.$eol;
$message .= "Content-Transfer-Encoding: 7bit".$eol.$eol;
$message .= "This is a MIME encoded message.".$eol;
$message .= "--".$separator.$eol;
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol;
$message .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$message .= "--".$separator.$eol;
$message .= "Content-Type: application/pdf; name=\"".$fileName."\"".$eol;
$message .= "Content-Transfer-Encoding: base64".$eol;
$message .= "Content-Disposition: attachment".$eol.$eol;
$message .= $attachment.$eol;
$message .= "--".$separator."--";
if (mail($to, $subject, $message, $headers)){
$action = 'action=Receipt%20Sent';
header('Location: ../index.php?'.$action);
}
else {
$action = 'action=Send%20Failed';
header('Location: ../index.php?'.$action);
}
J'ai été en utilisant TCPDF pour un court laps de temps, maintenant, de générer des fichiers PDF à partir de formulaires. Il fonctionne très bien et que le PHP n'a pas changé. Maintenant, je veux envoyer ces fichiers PDF à mon compte e-mail.
L'emailing est en fait le travail avec ce codage et joignez un fichier PDF. Le problème est que c'est tout simplement un fichier PDF vide à rude 100 octets la taille. Ce qui bien sûr n'est pas un fichier PDF valide ni n'ont rien à voir avec les réponses de la forme.
Je ne suis pas vraiment familier avec les attacher des fichiers à un e-mail en PHP et toute l'aide pour résoudre ce problème serait grandement apprécié.
Mise à jour
Depuis, il semble que plusieurs personnes sont à la recherche dans ce domaine encore, je vais poster ma solution actuelle. Il implique le téléchargement d'PHPMailer comme indiqué ci-dessous. J'ai commencé à la ligne de sortie de TCPDF.
$attachment = $makepdf->Output('filename.pdf', 'S');
SENDmail($attachment);
function SENDmail($pdf) {
require_once('phpmailer/class.phpmailer.php');
$mailer = new PHPMailer();
$mailer->AddReplyTo('[email protected]', 'Reply To');
$mailer->SetFrom('[email protected]', 'Sent From');
$mailer->AddReplyTo('[email protected]', 'Reply To');
$mailer->AddAddress('[email protected]', 'Send To');
$mailer->Subject = 'Message with PDF';
$mailer->AltBody = "To view the message, please use an HTML compatible email viewer";
$mailer->MsgHTML('<p>Message contents</p>'));
if ($pdf) {$mailer->AddStringAttachment($pdf, 'filename.pdf');}
$mailer->Send();
}
OriginalL'auteur foochow | 2012-07-20
Vous devez vous connecter pour publier un commentaire.
Vous avez deux choix. Vous pouvez enregistrer le fichier PDF à un fichier et d'attacher le fichier ou de sortie comme une chaîne de caractères. - Je trouver la sortie de chaîne est préférable:
Le nom de fichier est ignorée, car elle retourne la chaîne codée. Maintenant, vous pouvez inclure la chaîne dans votre e-mail. Je préfère utiliser PHPMailer lorsque vous travaillez avec des pièces jointes de ce genre. Utiliser le AddStringAttachment méthode de PHPMailer pour ce faire:
Je voulais aussi éviter les externes de diffusion de la bibliothèque, cependant c'était la solution idéale
Je lève mon chapeau à vous davidethell
OriginalL'auteur davidethell
J'ai essayé plusieurs solutions de rechange. Seule façon de travaillé a été quand j'ai enregistré le fichier PDF dans un dossier et ensuite l'envoyer par courriel.
mail()
fonction? Si ce n'est pas vous ne serez pas en mesure d'envoyer des messages à partir deTCPDF
OriginalL'auteur linkgtaylor