title: Email PDF Attachment with PHP Using FPDF
body: <p>I want to email a PDF as an attachment that was created using FPDF. My code looks like this, but the attachment never comes through.</p>
  
  <pre><code>&lt;?php
  require('lib/fpdf/fpdf.php');
  
  $pdf = new FPDF('P', 'pt', array(500,233));
  $pdf-&gt;AddFont('Georgiai','','georgiai.php');
  $pdf-&gt;AddPage();
  $pdf-&gt;Image('lib/fpdf/giftcertificate.jpg',0,0,500);
  $pdf-&gt;SetFont('georgiai','',16);
  $pdf-&gt;Cell(40,10,'Hello World!');
  $doc = $pdf-&gt;Output('test.pdf', 'S');
  
  //define the receiver of the email
  $to = 'myemail@example.com';
  //define the subject of the email
  $subject = 'Test email with attachment';
  //create a boundary string. It must be unique
  //so we use the MD5 algorithm to generate a random hash
  $random_hash = md5(date('r', time()));
  //define the headers we want passed. Note that they are separated with \r\n
  $headers = "From: reply@test.com\r\nReply-To: reply@test.com";
  //add boundary string and mime type specification
  $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
  //read the atachment file contents into a string,
  //encode it with MIME base64,
  //and split it into smaller chunks
  $attachment = chunk_split(base64_encode(file_get_contents($doc)));
  //define the body of the message.
  ob_start(); //Turn on output buffering
  ?&gt;
  --PHP-mixed-&lt;?php echo $random_hash; ?&gt; 
  Content-Type: multipart/alternative; boundary="PHP-alt-&lt;?php echo $random_hash; ?&gt;"
  
  --PHP-alt-&lt;?php echo $random_hash; ?&gt; 
  Content-Type: text/plain; charset="iso-8859-1"
  Content-Transfer-Encoding: 7bit
  
  Hello World!!!
  This is simple text email message.
  
  --PHP-alt-&lt;?php echo $random_hash; ?&gt; 
  Content-Type: text/html; charset="iso-8859-1"
  Content-Transfer-Encoding: 7bit
  
  &lt;h2&gt;Hello World!&lt;/h2&gt;
  &lt;p&gt;This is something with &lt;b&gt;HTML&lt;/b&gt; formatting.&lt;/p&gt;
  
  --PHP-alt-&lt;?php echo $random_hash; ?&gt;--
  
  --PHP-mixed-&lt;?php echo $random_hash; ?&gt; 
  Content-Type: application/zip; name="attachment.zip" 
  Content-Transfer-Encoding: base64 
  Content-Disposition: attachment 
  
  &lt;?php echo $attachment; ?&gt;
  --PHP-mixed-&lt;?php echo $random_hash; ?&gt;--
  
  &lt;?php
  //copy current buffer contents into $message variable and delete current output buffer
  $message = ob_get_clean();
  //send the email
  $mail_sent = @mail( $to, $subject, $message, $headers );
  //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
  echo $mail_sent ? "Mail sent" : "Mail failed"; 
  
  ?&gt;
  </code></pre>
  
  <p>Anyone familiar with doing this? I'm hoping to use the PHP mail() function.</p>