Skip to content

Instantly share code, notes, and snippets.

@wufoo
Created March 28, 2011 17:50
Show Gist options
  • Save wufoo/890918 to your computer and use it in GitHub Desktop.
Save wufoo/890918 to your computer and use it in GitHub Desktop.
For use with Wufoo WebHook
<?php
// NOTE: it's best practice to CLEAN YOUR INPUTS
// http://www.acunetix.com/websitesecurity/php-security-1.htm
function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
// Messages for testing only, nobody will see them unless this script URL is visited manually
if (mail($mailto, $subject, "", $header)) {
echo "Message sent!";
} else {
echo "ERROR sending message.";
}
}
// Only accept POSTs from authenticated source
if ($_POST['HandshakeKey'] != 'secret-handshake-key') {
echo "<h1>You are not who you say you are, mister man.</h1>";
die();
}
// EDIT FROM HERE DOWN TO
// CUSTOMIZE EMAIL
// File to attach
$my_file = "whitepaper.doc";
$my_path = ''; // $_SERVER['DOCUMENT_ROOT']."/your_path_here/";
// Who email is FROM
$my_name = "Your Name (or) Your Business";
$my_mail = "youremail@yourbusiness.com";
$my_replyto = "youremail@yourbusiness.com";
// Whe email is going TO
$to_email = $_POST['Field103']; // Comes from Wufoo WebHook
// Subject line of email
$my_subject = "Your file has arrived!";
// Content of email message (Text only)
$requester = $_POST['Field101']; // Comes from Wufoo WebHook
$message = "Hey $requester,
Your custom email message
goes here";
// Call function to send email
mail_attachment($my_file, $my_path, $to_email, $my_mail, $my_name, $my_replyto, $my_subject, $message);
?>
@kevincoop
Copy link

I'm getting the following error in the Notification log and not receive the email

(411) Length Required Length Required HTTP Error 411. The request must be chunked or have a content length.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment