Rectangle 27 1

fpdf Sending an email with a PDF Files attachment using PHP?


// once there are no errors, as soon as the customer hits the submit button, it needs to send an email to the staff with the customer information
        $msg = "Name: " .$_POST['name'] . "\n"
            ."Email: " .$_POST['email'] . "\n"
            ."Phone: " .$_POST['telephone'] . "\n"
            ."Number Of Guests: " .$_POST['numberOfGuests'] . "\n"
            ."Date Of Reunion: " .$_POST['date'];
        $staffEmail = "staffemail";

        mail($staffEmail, "You have a new customer", $msg); // using the mail php function to send the email. mail(to, subject line, message)

        //once the customer submits his/her information, he/she will receive a thank you message attach with a pdf file.
        // creating a pdf file
        $pdf_filename = tempnam(sys_get_temp_dir(), "pdf");
        $pdf=new FPDF();
        $pdf->AddPage();
        $pdf->SetFont("Arial", "B", 16);
        $pdf->Cell(40, 10, "Title");
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(15, 10, "Name:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(15, 10, $_POST['name']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(15, 10, "Email:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(15, 10, $_POST['email']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(15, 10, "Phone:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(15, 10, $_POST['telephone']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(40, 10, "Number of Guests:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(40, 10, $_POST['numberOfGuests']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(40, 10, "Date Of Reunion:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(40, 10, $_POST['date']);
        // if file doesn't exists or if it is writable, create and save the file to a specific place 
        if(!file_exists($pdf_filename) || is_writable($pdf_filename)){
            $pdf->Output($pdf_filename, "F");
        } else { 
            exit("Path Not Writable");
        }

        // using the phpmailer class
        // create a new instance called $mail and use its properties and methods.
        $mail = new PHPMailer();
        $staffEmail = "staffemail";
        $mail->From = $staffEmail;
        $mail->FromName = "name";
        $mail->AddAddress($_POST['email']);
        $mail->AddReplyTo($staffEmail, "name");

        $mail->AddAttachment($pdf_filename);
        $mail->Subject = "PDF file attachment";

        $mail->Body = "message!";

        // if mail cannot be sent, diplay error message
        //if(!$mail->Send()){
            //echo "<div id=\"mailerrors\">Message could not be sent</div>";
            //echo "<div id=\"mailerrors\">Mailer Error: " . $mail->ErrorInfo . "</div>";
        //} else { // else...if mail is sent, diplay sent message
            //echo "<div id=\"mailerrors\">Message sent</div>";
        //}

        // delete the temp file
        unlink($pdf_filename);
    }
}

This is a late comment, but you probably should use tempnam to generate a unique file name so you do not risk having a problem with two customers hitting the script at once.

Note
Rectangle 27 1

fpdf Sending an email with a PDF Files attachment using PHP?


// once there are no errors, as soon as the customer hits the submit button, it needs to send an email to the staff with the customer information
        $msg = "Name: " .$_POST['name'] . "\n"
            ."Email: " .$_POST['email'] . "\n"
            ."Phone: " .$_POST['telephone'] . "\n"
            ."Number Of Guests: " .$_POST['numberOfGuests'] . "\n"
            ."Date Of Reunion: " .$_POST['date'];
        $staffEmail = "staffemail";

        mail($staffEmail, "You have a new customer", $msg); // using the mail php function to send the email. mail(to, subject line, message)

        //once the customer submits his/her information, he/she will receive a thank you message attach with a pdf file.
        // creating a pdf file
        $pdf_filename = tempnam(sys_get_temp_dir(), "pdf");
        $pdf=new FPDF();
        $pdf->AddPage();
        $pdf->SetFont("Arial", "B", 16);
        $pdf->Cell(40, 10, "Title");
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(15, 10, "Name:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(15, 10, $_POST['name']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(15, 10, "Email:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(15, 10, $_POST['email']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(15, 10, "Phone:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(15, 10, $_POST['telephone']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(40, 10, "Number of Guests:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(40, 10, $_POST['numberOfGuests']);
        $pdf->Ln();
        $pdf->SetFont("Arial", "", 12);
        $pdf->Cell(40, 10, "Date Of Reunion:");
        $pdf->SetFont("Arial", "I", 12);
        $pdf->Cell(40, 10, $_POST['date']);
        // if file doesn't exists or if it is writable, create and save the file to a specific place 
        if(!file_exists($pdf_filename) || is_writable($pdf_filename)){
            $pdf->Output($pdf_filename, "F");
        } else { 
            exit("Path Not Writable");
        }

        // using the phpmailer class
        // create a new instance called $mail and use its properties and methods.
        $mail = new PHPMailer();
        $staffEmail = "staffemail";
        $mail->From = $staffEmail;
        $mail->FromName = "name";
        $mail->AddAddress($_POST['email']);
        $mail->AddReplyTo($staffEmail, "name");

        $mail->AddAttachment($pdf_filename);
        $mail->Subject = "PDF file attachment";

        $mail->Body = "message!";

        // if mail cannot be sent, diplay error message
        //if(!$mail->Send()){
            //echo "<div id=\"mailerrors\">Message could not be sent</div>";
            //echo "<div id=\"mailerrors\">Mailer Error: " . $mail->ErrorInfo . "</div>";
        //} else { // else...if mail is sent, diplay sent message
            //echo "<div id=\"mailerrors\">Message sent</div>";
        //}

        // delete the temp file
        unlink($pdf_filename);
    }
}

This is a late comment, but you probably should use tempnam to generate a unique file name so you do not risk having a problem with two customers hitting the script at once.

Note
Rectangle 27 1

fpdf Sending an email with a PDF Files attachment using PHP?


<?php

  // once there are no errors, as soon as the customer hits the submit button,
  // it needs to send an email to the staff with the customer information
  $msg = "Name: " .$_POST['name'] . "\n"
       . "Email: " .$_POST['email'] . "\n"
       . "Phone: " .$_POST['telephone'] . "\n"
       . "Number Of Guests: " .$_POST['numberOfGuests'] . "\n"
       . "Date Of Reunion: " .$_POST['date'];
  $staffEmail = "staffinfo";
  mail($staffEmail, "You have a new customer", $msg);

  // once the customer submits his/her information, he/she will receive a thank
  // you message attach with a pdf file.
  $pdf = new FPDF();
  $pdf->AddPage();
  $pdf->SetFont("Arial", "B", 16);
  $pdf->Cell(40, 10, "Hello World!");

  // email information
  $to = $_POST['email'];
  $from = $staffEmail;
  $subject = "Thank you for your business";
  $message = "Thank you for submitting your information!";

  // a random hash will be necessary to send mixed content
  $separator = '-=-=-'.md5(microtime()).'-=-=-';

  // attachment name
  $filename = "yourinformation.pdf";

  // Generate headers
  $headers = "From: $from\r\n"
           . "MIME-Version: 1.0\r\n"
           . "Content-Type: multipart/mixed; boundary=\"$separator\"\r\n"
           . "X-Mailer: PHP/" . phpversion();

  // Generate body
  $body = "This is a multipart message in MIME format\r\n"
        . "--$separator\r\n"
        . "Content-Type: text/html; charset=\"iso-8859-1\"\r\n"
        . "\r\n"
        . "$message\r\n"
        . "--$separator\r\n"
        . "Content-Type: application/pdf\r\n"
        . "Content-Transfer-Encoding: base64\r\n"
        . "Content-Disposition: attachment; filename=\"$filename\"\r\n"
        . "\r\n"
        . chunk_split(base64_encode($pdf->Output("", "S")))."\r\n"
        . "--$separator--";

  // send message
  mail($to, $subject, $body, $headers);

I waiting for the mail to come in, but it seems that the php mail function takes too long to send the message. The first email always takes so long. After the first email, it takes seconds to get the email. As soon as I receive the first email, I will confirm if it works or not. Thank you!

Note
Rectangle 27 1

fpdf Sending an email with a PDF Files attachment using PHP?


<?php

  // once there are no errors, as soon as the customer hits the submit button,
  // it needs to send an email to the staff with the customer information
  $msg = "Name: " .$_POST['name'] . "\n"
       . "Email: " .$_POST['email'] . "\n"
       . "Phone: " .$_POST['telephone'] . "\n"
       . "Number Of Guests: " .$_POST['numberOfGuests'] . "\n"
       . "Date Of Reunion: " .$_POST['date'];
  $staffEmail = "staffinfo";
  mail($staffEmail, "You have a new customer", $msg);

  // once the customer submits his/her information, he/she will receive a thank
  // you message attach with a pdf file.
  $pdf = new FPDF();
  $pdf->AddPage();
  $pdf->SetFont("Arial", "B", 16);
  $pdf->Cell(40, 10, "Hello World!");

  // email information
  $to = $_POST['email'];
  $from = $staffEmail;
  $subject = "Thank you for your business";
  $message = "Thank you for submitting your information!";

  // a random hash will be necessary to send mixed content
  $separator = '-=-=-'.md5(microtime()).'-=-=-';

  // attachment name
  $filename = "yourinformation.pdf";

  // Generate headers
  $headers = "From: $from\r\n"
           . "MIME-Version: 1.0\r\n"
           . "Content-Type: multipart/mixed; boundary=\"$separator\"\r\n"
           . "X-Mailer: PHP/" . phpversion();

  // Generate body
  $body = "This is a multipart message in MIME format\r\n"
        . "--$separator\r\n"
        . "Content-Type: text/html; charset=\"iso-8859-1\"\r\n"
        . "\r\n"
        . "$message\r\n"
        . "--$separator\r\n"
        . "Content-Type: application/pdf\r\n"
        . "Content-Transfer-Encoding: base64\r\n"
        . "Content-Disposition: attachment; filename=\"$filename\"\r\n"
        . "\r\n"
        . chunk_split(base64_encode($pdf->Output("", "S")))."\r\n"
        . "--$separator--";

  // send message
  mail($to, $subject, $body, $headers);

I waiting for the mail to come in, but it seems that the php mail function takes too long to send the message. The first email always takes so long. After the first email, it takes seconds to get the email. As soon as I receive the first email, I will confirm if it works or not. Thank you!

Note