send php mail to differentes users with attachment
Hi
i have an htm created by ob_start--ob_clean (query from mysql)
i can have more than 1 html each one for a user these htmls are converted to pdf using html2pdf and each file is called by the name of the cleint
ex:if the user name is xxxx===>he will get xxxx.pdf file
my problem how i can send each of these files to a specific user
xxxx.pdf must be attached to xxxx user ..
everything is working perfect only i cannot find a method to send these emails
pls check the last part of the code
----------------html2pdf------------
try {
$html2pdf = new HTML2PDF('P', 'A4', 'en', true, 'UTF-8',5);// you can use the default parms
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($output);
$html2pdf->Output($surname.'.pdf','F');
}
catch(HTML2PDF_exception $e) {
echo $e;
}
//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------
$email_expediteur='info@campion.ie';
$email_reply='email_de_reponse@fai.fr';
$message_texte='Bonjour,'."\n\n".'Voici un message au format texte';
$message_html='<html>
<head>
<title>Titre</title>
</head>
<body>Test de message</body>
</html>';
//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$frontiere.'"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$frontiere."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";
$message .= '--'.$frontiere."\n";
//-----------------------------------------------
//PIECE JOINTE
//-----------------------------------------------
$message .= 'Content-Type: application/pdf; name="monthly.pdf"'."\n";
$message .= 'Content-Transfer-Encoding: base64'."\n";
$message .= 'Content-Disposition:attachement; filename="monthly.pdf"'."\n\n";
$message .= chunk_split(base64_encode(file_get_contents($surname.'.pdf')))."\n";
if(mail($email,$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
asaidi
Junior Poster in Training
55 posts since Jul 2012
Reputation Points: 0
Solved Threads: 0
Skill Endorsements: 0
do you have an smtp server running?
diafol
Keep Smiling
10,826 posts since Oct 2006
Reputation Points: 1,675
Solved Threads: 1,532
Skill Endorsements: 61
Hi
everything is runing fine..my problem i cannot find a method to:send for each email his attachment
the pdf is created for each user
$html2pdf->Output($surname.'.pdf','F');
if your usename is aaa the pdf will be called aaa.pdf and so and i will have a lot of pdfs in my folder
but when i send emails with attachment i have a problem
i want to send for each user with his attachment
aaa@mail.com must get the aaa.pdf
bbb@use.net must get the bbb.pdf and so..
cheers
asaidi
Junior Poster in Training
55 posts since Jul 2012
Reputation Points: 0
Solved Threads: 0
Skill Endorsements: 0
See function for attaching file. Also take care to save generated file in folder with 777 permission. then use that file to attach, i set path ../pdf/mail_attach.
<?php
function attach_file($files,$mime_boundary)
{
// preparing attachments
$message="";
$filecount= count($files);
for($x=0;$x<$filecount;$x++)
{
$filefullpath="../pdf/mail_attach/".$files[$x]['file_name'];
$file = fopen($filefullpath,"rb");
$data = fread($file,filesize($filefullpath));
fclose($file);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: \"".$files[$x]['file_type']."\";\n" . " name=\"".$files[$x]['file_title']."\"\n" .
"Content-Disposition: attachment;\n" . " filename=\"".$files[$x]['file_title']."\"\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
if($x<$filecount-1)
$message .= "--{$mime_boundary}\n";
}
return $message;
}
$html2pdf->Output("../pdf/mail_attach/".$surname.'.pdf','F');
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$files[0]['file_name']="aaa.pdf"; //filename
$files[0]['file_title']="UserFileAAA"; // file title
$files[0]['file_type']="application/pdf"; // mime file type
// Add the headers for a file attachment
$headers ="From: {$fromemailid}\n";
// $headers .="Return-path: {$fromemailid}\n";
$headers .= "MIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$subject = $db_broad[$bindex]['mail_subject'];
//$message ="This is a multi-part message in MIME format.\n\n";
$message ="--{$mime_boundary}\n";
$message .="Content-type: text/html; charset=iso-8859-1\n";
$message .="Content-Transfer-Encoding: 7bit\n\n" ;
$email_text=$message;
$message .=$email_text."\n\n";
$attachment=attach_file($files,$mime_boundary);
if($attachment!="")
$message .="--{$mime_boundary}\n".$attachment;
$sendmail = mail($toemailid ,$subject,$message,$headers,"-f".$fromemailid);
?>
urtrivedi
Posting Virtuoso
1,724 posts since Dec 2008
Reputation Points: 299
Solved Threads: 366
Skill Endorsements: 24
Question Answered as of 6 Months Ago by
diafol
and
urtrivedi