Post by testATtest » Sun Jan 27, 2013 7:19 pm

i've read so much topics and i've no idea what i can do for it...
Problem:
not working mail system: no acc creation confirm / no order confirm / no newsletter etc. etc.
Information:
Domain: DNS redelegated
Opencart Version: 1.5.5.1
PHP Version: 5.2.17
Safe Mode: Off
Register Globals: Off
Magic Quotes GPC: Off
Session Auto Start: Off
Allow Url Fopen: On

On this same server (other domain) i have installed 1.5.1.0 version of OC and mail system works correctly... some suggestions?

Newbie

Posts

Joined
Sun Jan 27, 2013 7:07 pm

Post by Daniel » Sun Jan 27, 2013 9:26 pm

what is the name of your store

make sure there are no special characters in it like &

1.5.1.1

Code: Select all

<?php
final class Mail {
	protected $to;
	protected $from;
	protected $sender;
	protected $subject;
	protected $text;
	protected $html;
	protected $attachments = array();
	public $protocol = 'mail';
	public $hostname;
	public $username;
	public $password;
	public $port = 25;
	public $timeout = 5;
	public $newline = "\n";
	public $crlf = "\r\n";
	public $verp = FALSE;
	public $parameter = '';

	public function setTo($to) {
		$this->to = $to;
	}

	public function setFrom($from) {
		$this->from = $from;
	}

	public function addheader($header, $value) {
		$this->headers[$header] = $value;
	}

	public function setSender($sender) {
		$this->sender = html_entity_decode($sender);
	}

	public function setSubject($subject) {
		$this->subject = html_entity_decode($subject);
	}

	public function setText($text) {
		$this->text = $text;
	}

	public function setHtml($html) {
		$this->html = $html;
	}

	public function addAttachment($file, $filename = '') {
		if (!$filename) {
			$filename = basename($file);
		}
				
		$this->attachments[] = array(
			'filename' => $filename,
			'file'     => $file
		);
	}

	public function send() {
		if (!$this->to) {
			exit('Error: E-Mail to required!');
		}

		if (!$this->from) {
			exit('Error: E-Mail from required!');
		}

		if (!$this->sender) {
			exit('Error: E-Mail sender required!');
		}

		if (!$this->subject) {
			exit('Error: E-Mail subject required!');
		}

		if ((!$this->text) && (!$this->html)) {
			exit('Error: E-Mail message required!');
		}

		if (is_array($this->to)) {
			$to = implode(',', $this->to);
		} else {
			$to = $this->to;
		}

		$boundary = '----=_NextPart_' . md5(time());

		$header = '';
		
		$header .= 'MIME-Version: 1.0' . $this->newline;
		
		if ($this->protocol != 'mail') {
			$header .= 'To: ' . $to . $this->newline;
			$header .= 'Subject: ' . $this->subject . $this->newline;
		}
		
		$header .= 'Date: ' . date("D, d M Y H:i:s O") . $this->newline;
		$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Reply-To: ' . $this->sender . '<' . $this->from . '>' . $this->newline;
		$header .= 'Return-Path: ' . $this->from . $this->newline;
		$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;
		$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline;

		if (!$this->html) {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->text . $this->newline;
		} else {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;
			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline;

			if ($this->text) {
				$message .= $this->text . $this->newline;
			} else {
				$message .= 'This is a HTML email and your email client software does not support HTML email!' . $this->newline;
			}

			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->html . $this->newline;
			$message .= '--' . $boundary . '_alt--' . $this->newline;
		}

		foreach ($this->attachments as $attachment) {
			if (file_exists($attachment['file'])) {
				$handle = fopen($attachment['file'], 'r');
				
				$content = fread($handle, filesize($attachment['file']));
				
				fclose($handle);

				$message .= '--' . $boundary . $this->newline;
				$message .= 'Content-Type: application/octetstream; name="' . basename($attachment['file']) . '"' . $this->newline;
				$message .= 'Content-Transfer-Encoding: base64' . $this->newline;
				$message .= 'Content-Disposition: attachment; filename="' . basename($attachment['file']) . '"' . $this->newline;
				$message .= 'Content-ID: <' . basename($attachment['filename']) . '>' . $this->newline;
				$message .= 'X-Attachment-Id: ' . basename($attachment['filename']) . $this->newline . $this->newline;
				$message .= chunk_split(base64_encode($content));
			}
		}

		$message .= '--' . $boundary . '--' . $this->newline;

		if ($this->protocol == 'mail') {
			ini_set('sendmail_from', $this->from);

			if ($this->parameter) {
				mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);
			} else {
				mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);
			}

		} elseif ($this->protocol == 'smtp') {
			$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);

			if (!$handle) {
				exit('Error: ' . $errstr . ' (' . $errno . ')');
			} else {
				if (substr(PHP_OS, 0, 3) != 'WIN') {
					socket_set_timeout($handle, $this->timeout, 0);
				}

				while ($line = fgets($handle, 515)) {
					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($this->hostname, 0, 3) == 'tls') {
					fputs($handle, 'STARTTLS' . $this->crlf);

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 220) {
						exit('Error: STARTTLS not accepted from server!');
					}
				}

				if (!empty($this->username)  && !empty($this->password)) {
					fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 250) {
						exit('Error: EHLO not accepted from server!');
					}

					fputs($handle, 'AUTH LOGIN' . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 334) {
						exit('Error: AUTH LOGIN not accepted from server!');
					}

					fputs($handle, base64_encode($this->username) . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 334) {
						exit('Error: Username not accepted from server!');
					}

					fputs($handle, base64_encode($this->password) . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 235) {
						exit('Error: Password not accepted from server!');
					}
				} else {
					fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 250) {
						exit('Error: HELO not accepted from server!');
					}
				}

				if ($this->verp) {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . $this->crlf);
				} else {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>' . $this->crlf);
				}

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 250) {
					exit('Error: MAIL FROM not accepted from server!');
				}

				if (!is_array($this->to)) {
					fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
						exit('Error: RCPT TO not accepted from server!');
					}
				} else {
					foreach ($this->to as $recipient) {
						fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf);

						$reply = '';

						while ($line = fgets($handle, 515)) {
							$reply .= $line;

							if (substr($line, 3, 1) == ' ') {
								break;
							}
						}

						if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
							exit('Error: RCPT TO not accepted from server!');
						}
					}
				}

				fputs($handle, 'DATA' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 354) {
					exit('Error: DATA not accepted from server!');
				}
            	
				// According to rfc 821 we should not send more than 1000 including the CRLF
				$message = str_replace("\r\n", "\n",  $header . $message);
				$message = str_replace("\r", "\n", $message);
				
				$lines = explode("\n", $message);
				
				foreach ($lines as $line) {
					$results = str_split($line, 998);
					
					foreach ($results as $result) {
						if (substr(PHP_OS, 0, 3) != 'WIN') {
							fputs($handle, $result . $this->crlf);
						} else {
							fputs($handle, str_replace("\n", "\r\n", $result) . $this->crlf);
						}							
					}
				}
				
				fputs($handle, '.' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 250) {
					exit('Error: DATA not accepted from server!');
				}
				
				fputs($handle, 'QUIT' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 221) {
					exit('Error: QUIT not accepted from server!');
				}

				fclose($handle);
			}
		}
	}
}
?>

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by Daniel » Sun Jan 27, 2013 9:26 pm

1.5.5.1

Code: Select all

<?php
class Mail {
	protected $to;
	protected $from;
	protected $sender;
	protected $subject;
	protected $text;
	protected $html;
	protected $attachments = array();
	public $protocol = 'mail';
	public $hostname;
	public $username;
	public $password;
	public $port = 25;
	public $timeout = 5;
	public $newline = "\n";
	public $crlf = "\r\n";
	public $verp = false;
	public $parameter = '';

	public function setTo($to) {
		$this->to = $to;
	}

	public function setFrom($from) {
		$this->from = $from;
	}

	public function setSender($sender) {
		$this->sender = $sender;
	}

	public function setSubject($subject) {
		$this->subject = $subject;
	}

	public function setText($text) {
		$this->text = $text;
	}

	public function setHtml($html) {
		$this->html = $html;
	}

	public function addAttachment($filename) {
		$this->attachments[] = $filename;
	}

	public function send() {
		if (!$this->to) {
			trigger_error('Error: E-Mail to required!');
			exit();			
		}

		if (!$this->from) {
			trigger_error('Error: E-Mail from required!');
			exit();					
		}

		if (!$this->sender) {
			trigger_error('Error: E-Mail sender required!');
			exit();					
		}

		if (!$this->subject) {
			trigger_error('Error: E-Mail subject required!');
			exit();					
		}

		if ((!$this->text) && (!$this->html)) {
			trigger_error('Error: E-Mail message required!');
			exit();					
		}

		if (is_array($this->to)) {
			$to = implode(',', $this->to);
		} else {
			$to = $this->to;
		}

		$boundary = '----=_NextPart_' . md5(time());

		$header = '';
		
		$header .= 'MIME-Version: 1.0' . $this->newline;
		
		if ($this->protocol != 'mail') {
			$header .= 'To: ' . $to . $this->newline;
			$header .= 'Subject: ' . $this->subject . $this->newline;
		}
		
		$header .= 'Date: ' . date('D, d M Y H:i:s O') . $this->newline;
		$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Reply-To: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
		$header .= 'Return-Path: ' . $this->from . $this->newline;
		$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;
		$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;

		if (!$this->html) {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->text . $this->newline;
		} else {
			$message  = '--' . $boundary . $this->newline;
			$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;
			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

			if ($this->text) {
				$message .= $this->text . $this->newline;
			} else {
				$message .= 'This is a HTML email and your email client software does not support HTML email!' . $this->newline;
			}

			$message .= '--' . $boundary . '_alt' . $this->newline;
			$message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;
			$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
			$message .= $this->html . $this->newline;
			$message .= '--' . $boundary . '_alt--' . $this->newline;
		}

		foreach ($this->attachments as $attachment) {
			if (file_exists($attachment)) {
				$handle = fopen($attachment, 'r');
				
				$content = fread($handle, filesize($attachment));
				
				fclose($handle);

				$message .= '--' . $boundary . $this->newline;
				$message .= 'Content-Type: application/octet-stream; name="' . basename($attachment) . '"' . $this->newline;
				$message .= 'Content-Transfer-Encoding: base64' . $this->newline;
				$message .= 'Content-Disposition: attachment; filename="' . basename($attachment) . '"' . $this->newline;
				$message .= 'Content-ID: <' . basename(urlencode($attachment)) . '>' . $this->newline;
				$message .= 'X-Attachment-Id: ' . basename(urlencode($attachment)) . $this->newline . $this->newline;
				$message .= chunk_split(base64_encode($content));
			}
		}

		$message .= '--' . $boundary . '--' . $this->newline;

		if ($this->protocol == 'mail') {
			ini_set('sendmail_from', $this->from);

			if ($this->parameter) {
				mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);
			} else {
				mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);
			}
		} elseif ($this->protocol == 'smtp') {
			$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);

			if (!$handle) {
				trigger_error('Error: ' . $errstr . ' (' . $errno . ')');
				exit();					
			} else {
				if (substr(PHP_OS, 0, 3) != 'WIN') {
					socket_set_timeout($handle, $this->timeout, 0);
				}

				while ($line = fgets($handle, 515)) {
					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($this->hostname, 0, 3) == 'tls') {
					fputs($handle, 'STARTTLS' . $this->crlf);

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 220) {
						trigger_error('Error: STARTTLS not accepted from server!');
						exit();								
					}
				}

				if (!empty($this->username)  && !empty($this->password)) {
					fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 250) {
						trigger_error('Error: EHLO not accepted from server!');
						exit();								
					}

					fputs($handle, 'AUTH LOGIN' . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 334) {
						trigger_error('Error: AUTH LOGIN not accepted from server!');
						exit();						
					}

					fputs($handle, base64_encode($this->username) . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 334) {
						trigger_error('Error: Username not accepted from server!');
						exit();								
					}

					fputs($handle, base64_encode($this->password) . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 235) {
						trigger_error('Error: Password not accepted from server!');
						exit();								
					}
				} else {
					fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if (substr($reply, 0, 3) != 250) {
						trigger_error('Error: HELO not accepted from server!');
						exit();							
					}
				}

				if ($this->verp) {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . $this->crlf);
				} else {
					fputs($handle, 'MAIL FROM: <' . $this->from . '>' . $this->crlf);
				}

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 250) {
					trigger_error('Error: MAIL FROM not accepted from server!');
					exit();							
				}

				if (!is_array($this->to)) {
					fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf);

					$reply = '';

					while ($line = fgets($handle, 515)) {
						$reply .= $line;

						if (substr($line, 3, 1) == ' ') {
							break;
						}
					}

					if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
						trigger_error('Error: RCPT TO not accepted from server!');
						exit();							
					}
				} else {
					foreach ($this->to as $recipient) {
						fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf);

						$reply = '';

						while ($line = fgets($handle, 515)) {
							$reply .= $line;

							if (substr($line, 3, 1) == ' ') {
								break;
							}
						}

						if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
							trigger_error('Error: RCPT TO not accepted from server!');
							exit();								
						}
					}
				}

				fputs($handle, 'DATA' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 354) {
					trigger_error('Error: DATA not accepted from server!');
					exit();						
				}
            	
				// According to rfc 821 we should not send more than 1000 including the CRLF
				$message = str_replace("\r\n", "\n",  $header . $message);
				$message = str_replace("\r", "\n", $message);
				
				$lines = explode("\n", $message);
				
				foreach ($lines as $line) {
					$results = str_split($line, 998);
					
					foreach ($results as $result) {
						if (substr(PHP_OS, 0, 3) != 'WIN') {
							fputs($handle, $result . $this->crlf);
						} else {
							fputs($handle, str_replace("\n", "\r\n", $result) . $this->crlf);
						}							
					}
				}
				
				fputs($handle, '.' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 250) {
					trigger_error('Error: DATA not accepted from server!');
					exit();						
				}
				
				fputs($handle, 'QUIT' . $this->crlf);

				$reply = '';

				while ($line = fgets($handle, 515)) {
					$reply .= $line;

					if (substr($line, 3, 1) == ' ') {
						break;
					}
				}

				if (substr($reply, 0, 3) != 221) {
					trigger_error('Error: QUIT not accepted from server!');
					exit();						
				}

				fclose($handle);
			}
		}
	}
}
?>

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by Daniel » Sun Jan 27, 2013 9:28 pm

testATtest wrote:i've read so much topics and i've no idea what i can do for it...
Problem:
not working mail system: no acc creation confirm / no order confirm / no newsletter etc. etc.
Information:
Domain: DNS redelegated
Opencart Version: 1.5.5.1
PHP Version: 5.2.17
Safe Mode: Off
Register Globals: Off
Magic Quotes GPC: Off
Session Auto Start: Off
Allow Url Fopen: On

On this same server (other domain) i have installed 1.5.1.0 version of OC and mail system works correctly... some suggestions?
pm me ftp details and admin access. i will look at this my self.

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by testATtest » Sun Jan 27, 2013 10:20 pm

I tested several versions of OC last "full" working compilation is 1.5.1.1, all subsequent versions (updated by the /install/) do not work... testing & testing.... but I'm so blind, and your tip was very helpful !!! issue is resolved. Thx!

scrap of mail.php - 1.5.5

Code: Select all

108-		$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;
120-		$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
changed to scrap of mail.php - 1.5.1.1

Code: Select all

108-		$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline;
120-		$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline;

Newbie

Posts

Joined
Sun Jan 27, 2013 7:07 pm

Post by 90ep » Sun Feb 03, 2013 12:19 pm

Upgraded to 1.5.4. and am having mail problems. I am trying to send a customer mail and customer field does not auto populate. Then I tried to send group mail and I keep getting this-
E-Mail Message required!
there is a message in the message box.
Is this a problem w/1.5.4?
What do I need to do to get mail feature working?

Newbie

Posts

Joined
Sat Jan 19, 2013 7:09 am

Post by Chris_AXA » Mon Feb 04, 2013 6:41 pm

I ran into the exact same problem when the PHP on our server was upgraded.

I posted about it before but got no response:
http://forum.opencart.com/viewtopic.php?f=20&t=93063

Changing the mail.php to an older version works but I am still wondering why this is.

New member

Posts

Joined
Mon Sep 24, 2012 7:18 pm

Post by OuterGoddess » Thu Feb 07, 2013 10:40 am

I am having this same issue on 1.5.4. I finally discovered all the email failure messages in my hosting site default email. Nothing ever reached the emails I set up in the settings tab. This is HUGE problem. I tried the code change to 1.5.1 mentioned above with no help. I also tried changing to the mail code from 1.5.5 with continued failures and a blank page after attempting to send a "Contact Us" email. The failure emails read as this:

From: Mail Delivery System <Mailer-Daemon@server73.web-hosting.com> Sent: Wed 6/02/13 9:35 PM
To:
outefiof@server73.web-hosting.com
Priority: Normal
Subject: Mail failure - no recipient addresses Type: Text

A message that you sent using the -t command line option contained no
addresses that were not also on the command line, and were therefore
suppressed. This left no recipient addresses, and so no delivery could
be attempted.

------ This is a copy of your message, including all the headers. ------

To: lauren@outergoddess.com
Subject: =?UTF-8?B?RW5xdWlyeSBDaGVyeWw=?=
MIME-Version: 1.0
Date: Thu, 07 Feb 2013 02:35:45 +0000
From: =?UTF-8?B?Q2hlcnls?=<cheryl.d.monroe@gmail.com>
Reply-To: =?UTF-8?B?Q2hlcnls?=<cheryl.d.monroe@gmail.com>
Return-Path: cheryl.d.monroe@gmail.com
X-Mailer: PHP/5.3.19
Content-Type: multipart/related; boundary="----=_NextPart_d437ab2f995f869919c569d76959f155"
Message-Id: <E1U3HKz-003tkp-FA@server73.web-hosting.com>
Sender: <outefiof@server73.web-hosting.com>

------=_NextPart_d437ab2f995f869919c569d76959f155
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
testing again!!
------=_NextPart_d437ab2f995f869919c569d76959f155--

Newbie

Posts

Joined
Thu Feb 07, 2013 10:24 am

Post by Daniel » Sat Feb 09, 2013 2:02 am

don;t know where this came from:

?UTF-8?B?Q2hlcnls?

should be:

=?UTF-8?B?

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by Chris_AXA » Mon Feb 11, 2013 10:30 pm

testATtest wrote:I tested several versions of OC last "full" working compilation is 1.5.1.1, all subsequent versions (updated by the /install/) do not work... testing & testing.... but I'm so blind, and your tip was very helpful !!! issue is resolved. Thx!

scrap of mail.php - 1.5.5

Code: Select all

108-		$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;
120-		$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
changed to scrap of mail.php - 1.5.1.1

Code: Select all

108-		$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline;
120-		$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline;
I can confirm that this works for 1.5.5.1.

Although the lines are 97 and 119 instead of 108 and 120.

New member

Posts

Joined
Mon Sep 24, 2012 7:18 pm

Post by artebit » Sun Mar 03, 2013 5:43 am

Hi there,

I'm having a similar problem since I've upgraded from 1.5.4.1 to 1.5.5.1.

All is working ok with themes and mods but the orders and new customers emails confirmation and email form is rendered useless.

Is there a solution for this issue?

I'm no techie so please bare with me.

Thanks

Jose

Newbie

Posts

Joined
Sun Mar 03, 2013 5:11 am

Post by PlugGuy » Mon Mar 04, 2013 7:50 pm

Same here - we can send/receive emails from our site, but NO order confirmations coming through from OpenCart.

1.5.4

Other issues with PayPal not seeing item/shipping/tax breakdown, but posted elsewhere, unresolved.

We get NO ORDERS via email, must go back into Admin/Sales/Orders to retrieve all data.

Appreciate any help.

Chief Plug Guy
BumperPlugs.com


User avatar
Active Member

Posts

Joined
Fri Jan 25, 2013 11:11 pm


Post by Daniel » Mon Mar 04, 2013 10:02 pm

we get or the customer doesn't get?

is the settings set to send the store owner a mail?

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by PlugGuy » Mon Mar 04, 2013 10:31 pm

Under Settings/Store - New Order Alert is checked YES. We do not have any feedback from customers on whether they are receiving, and we normally manually email a confirmation anyway (or used to, but now it's become a hassle with these issues facing us).

When we first went live with our new O/C site last week, an order hit, we received an OpenCart order detail, then got a PayPal confirm for payment (PP Pro and Std available).

Have not received any orders via email from O/C ever since. We see the payment confirm from PP, but it's lumped into one payment total without breakout for shipping and taxes. In addition, PP Pro Support indicates the API Calls from OpenCart are MISSING some code for the shipping amount, and that's why the PP Payments are lumping all into one total, without the breakout on shipping.

So we have two major problems:

1) the lack of email from OpenCart with order details
2) the problem with the API call not breaking down shipping, taxes, etc correctly in the hand off to PayPal.

Any help greatly appreciated.

Chief Plug Guy
BumperPlugs.com


User avatar
Active Member

Posts

Joined
Fri Jan 25, 2013 11:11 pm


Post by Daniel » Mon Mar 04, 2013 11:54 pm

send a message via the contact us link at the top of the opencart site and select support. my guys can sort it for you.

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by PlugGuy » Tue Mar 05, 2013 12:36 am

Thanks...done that. Felix has all these details. No resolution though.

Will try again.

Chief Plug Guy
BumperPlugs.com


User avatar
Active Member

Posts

Joined
Fri Jan 25, 2013 11:11 pm


Post by PlugGuy » Wed Mar 06, 2013 11:13 am

We fixed the mail problem. Never got a reply to the PM.

Still have other bugs. Your API calls for payment are flawed. Need to fix. Wish we had a way to do that.

Chief Plug Guy
BumperPlugs.com


User avatar
Active Member

Posts

Joined
Fri Jan 25, 2013 11:11 pm


Post by Daniel » Wed Mar 06, 2013 3:57 pm

we have never received a mail from you.

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by Daniel » Wed Mar 06, 2013 4:00 pm

a lot of problems regard mails not set out are to do with the line endings


you can try altering the mail class so that

public $crlf = "\r\n";

becomes

public $crlf = "\n";

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by PlugGuy » Wed Mar 06, 2013 7:34 pm

We fixed our email, but we DID send the note via contact the other day, got an auto reply we'd hear back within 48 hours, no joy there.

Then the checkout blew up with a flaw yesterday and we spent six hours trying to resolve, no joy there either.

We have moved to another version of O/C to help, but we'll spend all day rebuilding our site as a result.

The bigger issue is the OpenCart API Calls are missing some code on the hand off, and it's causing us trouble with accounting breakdown with PP Pro/Std.

See my other posts. Happy to PM you if you want to see the earlier reply we had to our 'contact' memo as you suggested.

Thanks.

Chief Plug Guy
BumperPlugs.com


User avatar
Active Member

Posts

Joined
Fri Jan 25, 2013 11:11 pm

Who is online

Users browsing this forum: No registered users and 5 guests