Solved

Add Attachement To Email Function

Posted on 2008-06-09
2
183 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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I imagine that there are some, like me, who require a way of getting currency exchange rates for implementation in web project from time to time, so I thought I would share a solution that I have developed for this purpose. It turns out that Yaho…
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.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

740 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