Go Back   HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials > Linux Forums > Server Operation

Do you like HowtoForge? Please consider supporting us by becoming a subscriber.
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 22nd January 2009, 00:12
gjcomputer gjcomputer is offline
Member
 
Join Date: Jan 2006
Location: missouri, USA
Posts: 91
Thanks: 15
Thanked 2 Times in 2 Posts
Default cPHPezMail...wont send email - ispconfig

i am using ispconfig 3.0.0.8 and i have another serve rrunning 2.#.#(current), and i am trying to run a script that uses the following script for sending email upon registration, send to friend, forgot password etc on the site, and it does not send on either server, both configured with direction from here (perfect setup) ... here is the code that sends the email out, and i never get the email. all other email sends properly in and out, ports are open etc. what could be the problem here? im not a php person so i dont see anything wrong... all help is appreciated.

Code:
<?php
/*
* cPHPezMail Version 1.2 (2005-09-09 12:55 pm +7 GMT)
* COPYRIGHT 2004-2005 CHARIN NAWARITLOHA.
* Contact: inews@charinnawaritloha.net
*/
class cPHPezMail
{
	var $aHeader;
	var $aMessage;
	var $aPOSTFileAttach;
	var $aLocalFileAttach;
	var $sFrom;
	var $aTo;
	var $sMimeBoundary;
	var $sAltBoundary;
	var $sBodyText;
	var $sBodyHTML;
	var $sSubject;
	var $sCharset;
	var $nEncoding;
	var $sTempFileName;
	var $aMimeType;
	var $sDefaultMimeType;
	
	function cPHPezMail()
	{
		$this->aLocalFileAttach = array();
		$this->aPOSTFileAttach = array();
		$this->aHeader = array();
		$this->aMessage = array();
		$this->sMimeBoundary = '==Multipart_Boundary_X'. md5(time()) .'X';
		$this->sAltBoundary = '==Alternative_Boundary_X'. md5(time()) .'X';
		$this->aTo = array();
		$this->aCc = array();
		$this->aBcc = array();
		$this->sFrom = '';
		$this->sBodyHTML = '';
		$this->sBodyText = '';
		$this->sSubject = '';
		$this->sCharset = 'iso-8859-1';
		$this->nEncoding = 7;
		$this->sTempFileName = './upload_temp/' . md5(time()) . '.tmp';
		$this->sDefaultMimeType = 'application/octet-stream';
		$this->aMimeType = array (
			'ai' => 'application/postscript',
			'aif' => 'audio/x-aiff',
			'aifc' => 'audio/x-aiff',
			'aiff' => 'audio/x-aiff',
			'asc' => 'text/plain',
			'au' => 'audio/basic',
			'avi' => 'video/x-msvideo',
			'bcpio' => 'application/x-bcpio',
			'bin' => 'application/octet-stream',
			'bmp' => 'image/bmp',
			'cdf' => 'application/x-netcdf',
			'cgm' => 'image/cgm',
			'class' => 'application/octet-stream',
			'cpio' => 'application/x-cpio',
			'cpt' => 'application/mac-compactpro',
			'csh' => 'application/x-csh',
			'css' => 'text/css',
			'dcr' => 'application/x-director',
			'dir' => 'application/x-director',
			'djv' => 'image/vnd.djvu',
			'djvu' => 'image/vnd.djvu',
			'dll' => 'application/octet-stream',
			'dms' => 'application/octet-stream',
			'doc' => 'application/msword',
			'dtd' => 'application/xml-dtd',
			'dvi' => 'application/x-dvi',
			'dxr' => 'application/x-director',
			'eps' => 'application/postscript',
			'etx' => 'text/x-setext',
			'exe' => 'application/octet-stream',
			'ez' => 'application/andrew-inset',
			'gif' => 'image/gif',
			'gram' => 'application/srgs',
			'grxml' => 'application/srgs+xml',
			'gtar' => 'application/x-gtar',
			'gzip' => 'application/x-gzip',
			'hdf' => 'application/x-hdf',
			'hqx' => 'application/mac-binhex40',
			'htm' => 'text/html',
			'html' => 'text/html',
			'ice' => 'x-conference/x-cooltalk',
			'ico' => 'image/x-icon',
			'ics' => 'text/calendar',
			'ief' => 'image/ief',
			'ifb' => 'text/calendar',
			'iges' => 'model/iges',
			'igs' => 'model/iges',
			'jpe' => 'image/jpeg',
			'jpeg' => 'image/jpeg',
			'jpg' => 'image/jpeg',
			'js' => 'application/x-javascript',
			'kar' => 'audio/midi',
			'latex' => 'application/x-latex',
			'lha' => 'application/octet-stream',
			'lzh' => 'application/octet-stream',
			'm3u' => 'audio/x-mpegurl',
			'man' => 'application/x-troff-man',
			'mathml' => 'application/mathml+xml',
			'me' => 'application/x-troff-me',
			'mesh' => 'model/mesh',
			'mid' => 'audio/midi',
			'midi' => 'audio/midi',
			'mov' => 'video/quicktime',
			'movie' => 'video/x-sgi-movie',
			'mp2' => 'audio/mpeg',
			'mp3' => 'audio/mpeg',
			'mpe' => 'video/mpeg',
			'mpeg' => 'video/mpeg',
			'mpg' => 'video/mpeg',
			'mpga' => 'audio/mpeg',
			'ms' => 'application/x-troff-ms',
			'msh' => 'model/mesh',
			'mxu' => 'video/vnd.mpegurl',
			'nc' => 'application/x-netcdf',
			'oda' => 'application/oda',
			'ogg' => 'application/ogg',
			'pbm' => 'image/x-portable-bitmap',
			'pdb' => 'chemical/x-pdb',
			'pdf' => 'application/pdf',
			'pgm' => 'image/x-portable-graymap',
			'pgn' => 'application/x-chess-pgn',
			'png' => 'image/png',
			'pnm' => 'image/x-portable-anymap',
			'ppm' => 'image/x-portable-pixmap',
			'ppt' => 'application/vnd.ms-powerpoint',
			'ps' => 'application/postscript',
			'qt' => 'video/quicktime',
			'ra' => 'audio/x-realaudio',
			'ram' => 'audio/x-pn-realaudio',
			'ras' => 'image/x-cmu-raster',
			'rdf' => 'application/rdf+xml',
			'rgb' => 'image/x-rgb',
			'rm' => 'audio/x-pn-realaudio',
			'roff' => 'application/x-troff',
			'rpm' => 'audio/x-pn-realaudio-plugin',
			'rtf' => 'text/rtf',
			'rtx' => 'text/richtext',
			'sgm' => 'text/sgml',
			'sgml' => 'text/sgml',
			'sh' => 'application/x-sh',
			'shar' => 'application/x-shar',
			'silo' => 'model/mesh',
			'sit' => 'application/x-stuffit',
			'skd' => 'application/x-koan',
			'skm' => 'application/x-koan',
			'skp' => 'application/x-koan',
			'skt' => 'application/x-koan',
			'smi' => 'application/smil',
			'smil' => 'application/smil',
			'snd' => 'audio/basic',
			'so' => 'application/octet-stream',
			'spl' => 'application/x-futuresplash',
			'src' => 'application/x-wais-source',
			'sv4cpio' => 'application/x-sv4cpio',
			'sv4crc' => 'application/x-sv4crc',
			'svg' => 'image/svg+xml',
			'swf' => 'application/x-shockwave-flash',
			't' => 'application/x-troff',
			'tar' => 'application/x-tar',
			'tcl' => 'application/x-tcl',
			'tex' => 'application/x-tex',
			'texi' => 'application/x-texinfo',
			'texinfo' => 'application/x-texinfo',
			'tif' => 'image/tiff',
			'tiff' => 'image/tiff',
			'tr' => 'application/x-troff',
			'tsv' => 'text/tab-separated-values',
			'txt' => 'text/plain',
			'ustar' => 'application/x-ustar',
			'vcd' => 'application/x-cdlink',
			'vrml' => 'model/vrml',
			'vxml' => 'application/voicexml+xml',
			'wav' => 'audio/x-wav',
			'wbmp' => 'image/vnd.wap.wbmp',
			'wbxml' => 'application/vnd.wap.wbxml',
			'wml' => 'text/vnd.wap.wml',
			'wmlc' => 'application/vnd.wap.wmlc',
			'wmls' => 'text/vnd.wap.wmlscript',
			'wmlsc' => 'application/vnd.wap.wmlscriptc',
			'wrl' => 'model/vrml',
			'xbm' => 'image/x-xbitmap',
			'xht' => 'application/xhtml+xml',
			'xhtml' => 'application/xhtml+xml',
			'xls' => 'application/vnd.ms-excel',
			'xml' => 'application/xml',
			'xpm' => 'image/x-xpixmap',
			'xsl' => 'application/xml',
			'xslt' => 'application/xslt+xml',
			'xwd' => 'image/x-xwindowdump',
			'xyz' => 'chemical/x-xyz',
			'zip' => 'application/zip');

		//If you want to make default value TO DO here
		//make default header
		$this->AddHeader('MIME-Version', '1.0');
	}
	
	function SetFrom($str_Email, $str_ScreenName='')
	{
		if($str_ScreenName)
			$this->sFrom = "$str_ScreenName <$str_Email>";
		else
			$this->sFrom = "$str_Email";
	}

	function AddTo($str_Email, $str_ScreenName='')
	{
		if($str_ScreenName)
			$this->aTo[] = "$str_ScreenName <$str_Email>";
		else
			$this->aTo[] = "$str_Email";
	}
	
	function AddCc($str_Email, $str_ScreenName='')
	{
		if($str_ScreenName)
			$this->aCc[] = "$str_ScreenName <$str_Email>";
		else
			$this->aCc[] = "$str_Email";
	}

	function AddBcc($str_Email, $str_ScreenName='')
	{
		if($str_ScreenName)
			$this->aBcc[] = "$str_ScreenName <$str_Email>";
		else
			$this->aBcc[] = "$str_Email";
	}

	function AddHeader($str_Header, $str_Value='')
	{
		$this->aHeader[] = $str_Header . ': ' . $str_Value;
	}

	function SetSubject($str_Subject)
	{
		$this->sSubject = $str_Subject;
	}
	
	function SetBodyText($str_Text)
	{
		$this->sBodyText = $str_Text;
	}
	
	function SetBodyHTML($str_HTML)
	{
		$this->sBodyHTML = $str_HTML;
	}
	
	function AddAttachPOSTFile($array_POSTFile)
	{
		$this->aPOSTFileAttach[] = $array_POSTFile;
	}
	
	function AddAttachLocalFile($str_LocalFile, $str_MimeType='')
	{
		if(!$str_MimeType)
		{
			//Auto detect mime type from file extention
			preg_match("/\.[^.]+$/", $str_LocalFile, $aExt);
			$sExt = strtolower(str_replace('.', '', $aExt[0]));
			if($sExt)
			{
				if(isset($this->aMimeType[$sExt]))
					$str_MimeType = $this->aMimeType[$sExt];
				else
					$str_MimeType = $this->sDefaultMimeType;
			}
			else
				$str_MimeType = $this->sDefaultMimeType;
		}
	
		$aLocalFile = array();
		$aLocalFile['tmp_name'] = $str_LocalFile;
		$aLocalFile['name'] = preg_replace("/[^\/]*\//", '', $str_LocalFile);
		$aLocalFile['type'] = $str_MimeType;
		$aLocalFile['size'] = filesize($str_LocalFile);
		$this->aLocalFileAttach[] = $aLocalFile;
	}

	function SetCharset($str_Charset)
	{
		$this->sCharset = $str_Charset;
	}
	
	function SetEncodingBit($int_Encoding)
	{
		$this->nEncoding = $int_Encoding;
	}

	//Generate Header for EML format
	function ExportEML()
	{
		$aHeaderTemp = $this->aHeader;	
		$this->AddHeader('To', implode(', ', $this->aTo));
		$this->AddHeader('Subject', $this->sSubject);
		$this->AddHeader('Date', date('r'));
		$sEmailHeader = $this->_MakeHeader();
		$sEmailBody = $this->_MakeMessage();
		$sEMail = $sEmailHeader . "\r\n\r\n" . $sEmailBody;
		$this->aHeader = $aHeaderTemp;
		return $sEMail;
	}
	
	//Send E-mail
	function Send()
	{
		$sTo = implode(', ', $this->aTo);
		$bResponse = mail($sTo, $this->sSubject, $this->_MakeMessage(), $this->_MakeHeader());
		return $bResponse;
	}
	
	function _MakeHeader()
	{
		$aHeader = $this->aHeader;
		$aHeader[] = "X-Mailer: cPHPezMail,1.2";
		$aHeader[] = 'From: ' . $this->sFrom;
		if($this->aCc)
			$aHeader[] = 'Cc: ' . implode(', ', $this->aCc);
		if($this->aBcc)
			$aHeader[] = 'Bcc: ' . implode(', ', $this->aBcc);
		
		if($this->sBodyHTML || $this->aPOSTFileAttach || $this->aLocalFileAttach) //Check for multipart format
			$aHeader[] = "Content-Type: multipart/mixed;\r\n boundary=\"{$this->sMimeBoundary}\"";
		else
			$aHeader[] = "Content-Type: text/plain; charset={$this->sCharset}";

		return implode("\r\n", $aHeader);
	}

	
	function _MakeMessage()
	{
		$sMessage = '';
		if($this->sBodyHTML || $this->aPOSTFileAttach || $this->aLocalFileAttach) //Check for multipart format
		{
			//Start Multipart Format
			$sMessage .= "This is a multi-part message in MIME format.\r\n";
			
			if($this->sBodyText || $this->sBodyHTML)
			{
				//Open Alternative Part
				$sMessage .= "--{$this->sMimeBoundary}\r\n";
				$sMessage .= "Content-Type: multipart/alternative;\r\n boundary=\"{$this->sAltBoundary}\"\r\n\r\n";
			}
			
			if($this->sBodyText)
			{
				//Plain Text Message
				$sMessage .= "--{$this->sAltBoundary}\r\n";
				$sMessage .= "Content-Type: text/plain; charset={$this->sCharset}\r\nContent-Transfer-Encoding: {$this->nEncoding}bit\r\n\r\n";
				$sMessage .= rtrim($this->sBodyText);
				$sMessage .= "\r\n";
			}

			if($this->sBodyHTML)
			{
				//HTML Message
				$sMessage .= "--{$this->sAltBoundary}\r\n";
				$sMessage .= "Content-Type: text/html; charset={$this->sCharset}\r\nContent-Transfer-Encoding: {$this->nEncoding}bit\r\n\r\n";
				$sMessage .= rtrim($this->sBodyHTML);
				$sMessage .= "\r\n";
			}
			
			if($this->sBodyText || $this->sBodyHTML)
				//Close Alternative Part
				$sMessage .= "--{$this->sAltBoundary}--\r\n\r\n";

			if($this->aPOSTFileAttach)
			{
				//Attach POST Files
				foreach($this->aPOSTFileAttach as $aPOSTFile)
				{					
					if(!$aPOSTFile['size'])
						continue;
						
					if(!is_uploaded_file($aPOSTFile['tmp_name']))
						continue;
						
					if(copy($aPOSTFile['tmp_name'], $this->sTempFileName))
					{
						$fpAttachFile = fopen($this->sTempFileName, 'rb');
						if(!$fpAttachFile)
							continue;

						$sFileData = fread($fpAttachFile, $aPOSTFile['size']);
						fclose($fpAttachFile);
						@unlink($this->sTempFileName);

						$sFileData = chunk_split(base64_encode($sFileData));
						$sMessage .= "--{$this->sMimeBoundary}\r\n";
						$sMessage .= "Content-Type: {$aPOSTFile['type']};\r\n name=\"{$aPOSTFile['name']}\"\r\n";
						$sMessage .= "Content-Transfer-Encoding: base64\r\n";
						$sMessage .= "Content-Disposition: attachment;\r\n filename=\"{$aPOSTFile['name']}\"\r\n\r\n";

						$sMessage .= $sFileData;
					}
				}
			}
			
			if($this->aLocalFileAttach)
			{
				//Attach Local Files
				foreach($this->aLocalFileAttach as $aLocalFile)
				{
					if(!$aLocalFile['size'])
						continue;
						
					$fpAttachFile = fopen($aLocalFile['tmp_name'], 'rb');
					if(!$fpAttachFile)
						continue;

					$sFileData = fread($fpAttachFile, $aLocalFile['size']);
					fclose($fpAttachFile);

					$sFileData = chunk_split(base64_encode($sFileData));
					$sMessage .= "--{$this->sMimeBoundary}\r\n";
					$sMessage .= "Content-Type: {$aLocalFile['type']};\r\n name=\"{$aLocalFile['name']}\"\r\n";
					$sMessage .= "Content-Transfer-Encoding: base64\r\n";
					$sMessage .= "Content-Disposition: attachment;\r\n filename=\"{$aLocalFile['name']}\"\r\n\r\n";

					$sMessage .= $sFileData;
				}
			}

			
			//Close Message
			$sMessage .= "--{$this->sMimeBoundary}--\r\n";
		}
		else
		{
			//Start Plain Text Format
			$sMessage .= $this->sBodyText;
		}
		return $sMessage;
	}
}
?>
__________________
6r36.com
Reply With Quote
Sponsored Links
 

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
ISPConfig 3.0.0.7 Beta released till General 78 24th December 2008 11:47
Email resides outside of ISPConfig server cic Installation/Configuration 5 20th November 2007 14:19
how to configure postfix to send email out for a hosted domain nox171 Server Operation 24 13th July 2007 11:48
Cannot send out email johnnie Installation/Configuration 1 9th July 2007 08:40
Can't send email with attachments to another email nysprite Installation/Configuration 2 29th June 2006 18:09


All times are GMT +2. The time now is 11:53.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.