Jump to content

sending php mail with pdf attachment


bm4499

Recommended Posts

Can anyone tell me why this code is not working:

	
<?php
	$d = $_GET['p'];
	$u = $_GET['u'];
	$email_to = $_GET['e'];
	$email_from = "[email protected]";
	$headers = "From: " . $email_from;
	$fileatt = "$d/pdffile.pdf";
	$fileatt_type = "application/pdf";
	$fileatt_name =  "$d/pdffile.pdf";
	$email_subject = "Your pdffile";
	$email_message = "blablabla";
	$email_message .= "Thanks for visiting.<br>";
	$file = fopen($fileatt,'rb');
	$data = fread($file,filesize($fileatt));
	fclose($file);
	$semi_rand = md5(time());
	$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
	$headers .= "\nMIME-Version: 1.0\n" .
	"Content-Type: multipart/mixed;\n" .
	" boundary=\"{$mime_boundary}\"";
	$email_message .= "This is a multi-part message in MIME format.\n\n" .
	"--{$mime_boundary}\n" .
	"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
	"Content-Transfer-Encoding: 7bit\n\n" .
	$email_message .= "\n\n";
	$data = chunk_split(base64_encode($data));
	$email_message .= "--{$mime_boundary}\n" .
	"Content-Type: {$fileatt_type};\n" .
	" name=\"{$fileatt_name}\"\n" .
	//"Content-Disposition: attachment;\n" .
	//" filename=\"{$fileatt_name}\"\n" .
	"Content-Transfer-Encoding: base64\n\n" .
	$data .= "\n\n" . "--{$mime_boundary}--\n";
	$ok = @mail($email_to, $email_subject, $email_message, $headers);

	if($ok)
		{
			echo "Dear $u,<br /><br />blablabla.";
		}
	else
		{
			die("Sorry but the email could not be sent. Please go back and try again!");
		}
?>

 

This code is working properly:

 

<?php

		$fileatt = "dirname/myfile.pdf";
		$fileatt_type = "application/pdf";
		$fileatt_name = "dirname/myfile.pdf";
		$email_from = "[email protected]";
		$email_subject = "subject";
		$email_message = 'Hi,<br /><br />blablabla<br>';
		$email_message .= "<br /><br />Thanks for visiting.<br>";
		$email_to =  '[email protected]';  //$e;
		$headers = "From: ".$email_from;
		$file = fopen($fileatt,'rb');
		$data = fread($file,filesize($fileatt));
		fclose($file);
		$semi_rand = md5(time());
		$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
		$headers .= "\nMIME-Version: 1.0\n" .
		"Content-Type: multipart/mixed;\n" .
		" boundary=\"{$mime_boundary}\"";
		$email_message .= "This is a multi-part message in MIME format.\n\n" .
		"--{$mime_boundary}\n" .
		"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
		"Content-Transfer-Encoding: 7bit\n\n" .
		$email_message .= "\n\n";
		$data = chunk_split(base64_encode($data));
		$email_message .= "--{$mime_boundary}\n" .
		"Content-Type: {$fileatt_type};\n" .
		" name=\"{$fileatt_name}\"\n" .
		//"Content-Disposition: attachment;\n" .
		//" filename=\"{$fileatt_name}\"\n" .
		"Content-Transfer-Encoding: base64\n\n" .
		$data .= "\n\n" . "--{$mime_boundary}--\n";
		$ok = @mail($email_to, $email_subject, $email_message, $headers);

		if($ok)
			{
				echo 'Hi '..'File has been sent to your e-mail address: ';
				echo '<br />Go check your mailbox and check your spam box.<br /><br />Thanks for your order!<br /><br />blablabla';
			}
		else
			{
				die("Sorry but the email could not be sent. Please go back and try again!");
			}

?>

 

Maybe it is possible to add it as require_once with a function? I am lost now, strange I cannot get it at work properly with $_post / $_get...

Link to comment
https://forums.phpfreaks.com/topic/229584-sending-php-mail-with-pdf-attachment/
Share on other sites

I would like to post it as variable mailform. An example like require_once with a function also would be good. Ive tried it but seems it is not working.

 

Can anyone tell me why this code is not working:

	
<?php
	$d = $_GET['p'];
	$u = $_GET['u'];
	$email_to = $_GET['e'];
	$email_from = "[email protected]";
	$headers = "From: " . $email_from;
	$fileatt = "$d/pdffile.pdf";
	$fileatt_type = "application/pdf";
	$fileatt_name =  "$d/pdffile.pdf";
	$email_subject = "Your pdffile";
	$email_message = "blablabla";
	$email_message .= "Thanks for visiting.<br>";
	$file = fopen($fileatt,'rb');
	$data = fread($file,filesize($fileatt));
	fclose($file);
	$semi_rand = md5(time());
	$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
	$headers .= "\nMIME-Version: 1.0\n" .
	"Content-Type: multipart/mixed;\n" .
	" boundary=\"{$mime_boundary}\"";
	$email_message .= "This is a multi-part message in MIME format.\n\n" .
	"--{$mime_boundary}\n" .
	"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
	"Content-Transfer-Encoding: 7bit\n\n" .
	$email_message .= "\n\n";
	$data = chunk_split(base64_encode($data));
	$email_message .= "--{$mime_boundary}\n" .
	"Content-Type: {$fileatt_type};\n" .
	" name=\"{$fileatt_name}\"\n" .
	//"Content-Disposition: attachment;\n" .
	//" filename=\"{$fileatt_name}\"\n" .
	"Content-Transfer-Encoding: base64\n\n" .
	$data .= "\n\n" . "--{$mime_boundary}--\n";
	$ok = @mail($email_to, $email_subject, $email_message, $headers);

	if($ok)
		{
			echo "Dear $u,<br /><br />blablabla.";
		}
	else
		{
			die("Sorry but the email could not be sent. Please go back and try again!");
		}
?>

 

This code is working properly:

 

<?php

		$fileatt = "dirname/myfile.pdf";
		$fileatt_type = "application/pdf";
		$fileatt_name = "dirname/myfile.pdf";
		$email_from = "[email protected]";
		$email_subject = "subject";
		$email_message = 'Hi,<br /><br />blablabla<br>';
		$email_message .= "<br /><br />Thanks for visiting.<br>";
		$email_to =  '[email protected]';  //$e;
		$headers = "From: ".$email_from;
		$file = fopen($fileatt,'rb');
		$data = fread($file,filesize($fileatt));
		fclose($file);
		$semi_rand = md5(time());
		$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
		$headers .= "\nMIME-Version: 1.0\n" .
		"Content-Type: multipart/mixed;\n" .
		" boundary=\"{$mime_boundary}\"";
		$email_message .= "This is a multi-part message in MIME format.\n\n" .
		"--{$mime_boundary}\n" .
		"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
		"Content-Transfer-Encoding: 7bit\n\n" .
		$email_message .= "\n\n";
		$data = chunk_split(base64_encode($data));
		$email_message .= "--{$mime_boundary}\n" .
		"Content-Type: {$fileatt_type};\n" .
		" name=\"{$fileatt_name}\"\n" .
		//"Content-Disposition: attachment;\n" .
		//" filename=\"{$fileatt_name}\"\n" .
		"Content-Transfer-Encoding: base64\n\n" .
		$data .= "\n\n" . "--{$mime_boundary}--\n";
		$ok = @mail($email_to, $email_subject, $email_message, $headers);

		if($ok)
			{
				echo 'Hi '..'File has been sent to your e-mail address: ';
				echo '<br />Go check your mailbox and check your spam box.<br /><br />Thanks for your order!<br /><br />blablabla';
			}
		else
			{
				die("Sorry but the email could not be sent. Please go back and try again!");
			}

?>

 

Maybe it is possible to add it as require_once with a function? I am lost now, strange I cannot get it at work properly with $_post / $_get...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.