Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 202
  • Last Modified:

Add Attachement To Email Function

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
jset_expert
Asked:
jset_expert
1 Solution
 
hernst42Commented:
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
 
Loganathan NatarajanLAMP DeveloperCommented:
0

Featured Post

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now