Solved

Add Attachement To Email Function

Posted on 2008-06-09
2
173 Views
Last Modified: 2008-06-10
Hi, I have attached the code to my email function.

I am having problems modifying it so that I can add attachments.
 
Can anyone help me out here?
function my_mail($to, $subject, $message, $from="", $charset="", $headers="", $html_email=0, $cc_admin=0)

	{

		global $db, $mybb, $lang;

	

		if(empty($charset))

		{

			$charset = "UTF-8";

		}

	

		// Build mail headers

		if (empty($from))

		{

			$from = "\"Graphix Labels\" <jsette@enterit.com.au>";

		}

		

		$headers .= "From: {$from}\n";

		$headers .= "Return-Path: {jsette@enterit.com.au}\n";

		

		if($_SERVER['SERVER_NAME'])

		{

			$http_host = $_SERVER['SERVER_NAME'];

		}

		else if($_SERVER['HTTP_HOST'])

		{

			$http_host = $_SERVER['HTTP_HOST'];

		}

		else

		{

			$http_host = "unknown.local";

		}

		

		// Changed for HTML format

		$headers .= "Message-ID: <". md5(uniqid(time()))."@{$http_host}>\n";

		$headers .= "MIME-Version: 1.0\n";

		

		if ($html_email == 1){

			$headers .= "Content-Type: text/html; charset=\"{$charset}\"\n";

		}

		else

		{

			$headers .= "Content-Type: text/plain; charset=\"{$charset}\"\n";

		}

		

		

		$headers .= "Content-Transfer-Encoding: 8bit\n";

		$headers .= "X-Priority: 3\n";

		$headers .= "X-MSMail-Priority: Normal\n";

		$headers .= "X-Mailer: MyBB\n";

		

		//if(defined("IN_ADMINCP"))

		//{

		//	$_SERVER['PHP_SELF'] = str_replace($mybb->config['admin_dir']."/", "admin-", $_SERVER['PHP_SELF']);

		//}

		

		$headers .= "X-MyBB-Script: {$http_host}{$_SERVER['PHP_SELF']}\n";

		

		if ($cc_admin == 1 ){

			$headers .= "Bcc: jsette@enterit.com.au \n"; // BCC to Enter IT (for testing purposes)

		}

	

		// For some reason sendmail/qmail doesn't like \r\n

		$sendmail = @ini_get('sendmail_path');

		if($sendmail)

		{

			$headers = preg_replace("#(\r\n|\r|\n)#s", "\n", $headers);

			$message = preg_replace("#(\r\n|\r|\n)#s", "\n", $message);

		}

		else

		{

			$headers = preg_replace("#(\r\n|\r|\n)#s", "\r\n", $headers);

			$message = preg_replace("#(\r\n|\r|\n)#s", "\r\n", $message);

		}

	

		mail($to, $subject, $message, $headers);

	}

Open in new window

0
Comment
Question by:jset_expert
2 Comments
 
LVL 48

Accepted Solution

by:
hernst42 earned 350 total points
ID: 21748662
To use attachments use a PHP mailer class which can do that and will save you days of work. I recommend
http://phpmailer.sf.net
http://swiftmailer.sf.net
Easy to install and to use.  Recoding the attachment part for mails is very complicated and typical full of bugs. So don't write this part by your own. Use those well tested and working classes.
0
 
LVL 36

Expert Comment

by:Loganathan Natarajan
ID: 21749348
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Introduction Many web sites contain image galleries; a common design for these galleries includes a page with a collection of thumbnail images.  You can click on each of the thumbnail images to see the larger version of the image.  This is easily i…
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now