View Single Post
  #1  
Old 22nd January 2009, 01: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