Post by kornovec » Tue Aug 18, 2009 2:07 am

Hey,

Im sorry if im spamming, but i dont found any help to resolve this.
Id like to inform ppl about chnages of their order, BUT!
When im using MAIL nothing happend. When Im using SMTP with my datas nothing happend.

Can anybody help me with setting up emails?

Thanks very much!
K.

New member

Posts

Joined
Mon Jun 15, 2009 5:02 pm

Post by SuperJuice » Tue Aug 18, 2009 6:56 am

This isn't a bug, this is a support question (can someone move it?)

You need to ask your host what settings you should use, and then fill in the email settings accordingly.

Active Member

Posts

Joined
Thu Aug 13, 2009 12:06 pm

Post by kornovec » Tue Aug 18, 2009 3:01 pm

Have it filled correctly from my host - 100% working
Error log says: 2009-08-18 8:33:44 - PHP Notice: Undefined variable: action in /srv2/www/korn.cz/subdomains/pet/admin/view/template/tool/error_log.tpl on line 9

and when i try to send email through change in orders to notify customer there is alert: Error: AUTH LOGIN command failed!

Tried setting of gmail.com, seynam.cz nothing worked!
Maybe there is some problem in code?
Anybody here with working email interface????

Thanks!
K.

New member

Posts

Joined
Mon Jun 15, 2009 5:02 pm

Post by Daniel » Tue Aug 18, 2009 8:13 pm

why can you not use the mail function?

why do you need to use SMTP?

by the way the error in your log has nothing to do with the email!

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by kornovec » Wed Aug 19, 2009 12:30 am

Yup, you were all right! Im really sorry!
Installed on different host and use MAIL, all working! Informed previous host¨admin and they made MAIL function run correctly!

Please delete this topic and tahnk you very much again!
This program rulllleeeeeeeeeeeeees!!!!!!!!!!!!
K.

New member

Posts

Joined
Mon Jun 15, 2009 5:02 pm

Post by joaisbn » Thu Aug 20, 2009 4:02 am

I'm having a similar problem. When you use the module for payment or try to use the "Contact Us" is displayed the message "Error: AUTH LOGIN command failed." I'm using email as SMTP, because function mail () is disabled on the server.

How can I fix this?

Newbie

Posts

Joined
Thu Aug 20, 2009 3:56 am

Post by kornovec » Thu Aug 20, 2009 3:11 pm

Do it like i did. Contact your host to fix mail function...
If not, change your hosting :)

K.

New member

Posts

Joined
Mon Jun 15, 2009 5:02 pm

Post by nacho » Fri Aug 21, 2009 7:02 pm

Good Day Colleagues,

i have this problem in my admin -> configuration -> Error log show this error

2009-08-21 12:38:55 - PHP Notice: Undefined variable: action in /var/www/fuego/empresas/tienda/admin/view/template/tool/error_log.tpl on line 9

this error show when visit the same section of admin -> configuration -> Error log is error from code?¿
this variable have this name or not?¿ not understand

<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form">

anyone can helpme to remove this error message ?¿

Thanks.

Nacho Alegre.

Newbie

Posts

Joined
Wed Jul 29, 2009 7:19 pm

Post by sevenate » Fri Aug 28, 2009 3:02 am

Bump, same issue here.

Newbie

Posts

Joined
Sat Aug 01, 2009 9:08 am

Post by Daniel » Fri Aug 28, 2009 6:21 am

nacho wrote:Good Day Colleagues,

i have this problem in my admin -> configuration -> Error log show this error

2009-08-21 12:38:55 - PHP Notice: Undefined variable: action in /var/www/fuego/empresas/tienda/admin/view/template/tool/error_log.tpl on line 9

this error show when visit the same section of admin -> configuration -> Error log is error from code?¿
this variable have this name or not?¿ not understand

<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form">

anyone can helpme to remove this error message ?¿

Thanks.

Nacho Alegre.
ignore it.

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by sevenate » Fri Sep 04, 2009 6:17 am

Any fix for SMTP on OC 1.3.2 yet? As mentioned elsewhere... the Contact Us form, and Order submission *appears* to work correctly, but no e-mail is sent/received.

Newbie

Posts

Joined
Sat Aug 01, 2009 9:08 am

Post by axxies » Sun Sep 27, 2009 12:05 am

What about this bug with SMTP? This is a major showstopper as I see it. Not all can stop using SMTP.

New member

Posts

Joined
Thu Sep 03, 2009 4:30 pm

Post by JNeuhoff » Sun Sep 27, 2009 5:44 am

I found the current 1.3.2 release of the mail.php file in OpenCart to be buggy, too. In particular, it has problems with SMTP servers who return multi-line responses from e.g HELO and other commands. I have replaced the code with PHPMailer, which works fine for SMTP.

MHC Web Design
Override Engine * Integrated VQMod * Unused Images Manager * Instant Option Price Calculator * TrustPilot Reviews * Google Rich Snippets * Google Tag Manager * Export/Import Tool * Template Switcher PHP/Twig


User avatar
Expert Member

Posts

Joined
Wed Dec 05, 2007 3:38 am


Post by Daniel » Sun Sep 27, 2009 6:32 am

I posted a new fixed version somewhere here it is again:

Code: Select all

<?php 
final class Mail {
	protected $to;
  	protected $from;
  	protected $sender;
  	protected $subject;
  	protected $text;
  	protected $html;
  	protected $attachments = array();
	protected $protocol = 'mail';
	protected $hostname;
	protected $username;
	protected $password;
	protected $port = 25;
	protected $timeout = 5;
	public $charset = 'utf-8';
	public $eol = "\r\n";

	public function __construct($protocol = 'mail', $hostname = '', $username = '', $password = '', $port = '25', $timeout = '5') {
		$this->protocol = $protocol;
		$this->hostname = $hostname;
		$this->username = $username;
		$this->password = $password;
		$this->port = $port;
		$this->timeout = $timeout;	
	}
	
	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 = $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($attachments) {
    	$this->attachments[] = $attachments;
  	}

  	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(rand());  
		
		$header = '';
		
		if ($this->protocol != 'mail') {
			$header .= 'To: ' . $to . $this->eol;
			$header .= 'Subject: ' . $this->subject . $this->eol;
		}
		
		$header .= 'From: ' . $this->sender . '<' . $this->from . '>' . $this->eol; 
    	$header .= 'Reply-To: ' . $this->sender . '<' . $this->from . '>' . $this->eol;   
		$header .= 'Return-Path: ' . $this->from . $this->eol;
		$header .= 'X-Mailer: PHP/' . phpversion() . $this->eol;  
    	$header .= 'MIME-Version: 1.0' . $this->eol; 
		$header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $this->eol;  
	
		if (!$this->html) {
	  		$message  = '--' . $boundary . $this->eol;  
	  		$message .= 'Content-Type: text/plain; charset="' . $this->charset . '"' . $this->eol; 
	  		$message .= 'Content-Transfer-Encoding: base64' . $this->eol . $this->eol;
      		$message .= chunk_split(base64_encode($this->text));
		} else {
	  		$message  = '--' . $boundary . $this->eol;
	  		$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->eol . $this->eol;
	  		$message .= '--' . $boundary . '_alt' . $this->eol;
	  		$message .= 'Content-Type: text/plain; charset="' . $this->charset . '"' . $this->eol; 
	  		$message .= 'Content-Transfer-Encoding: base64' . $this->eol;
	  
	  		if ($this->text) {
        		$message .= chunk_split(base64_encode($this->text));
	  		} else {
	    		$message .= chunk_split(base64_encode('This is a HTML email and your email client software does not support HTML email!'));
      		}	
	  
	  		$message .= '--' . $boundary . '_alt' . $this->eol;
      		$message .= 'Content-Type: text/html; charset="' . $this->charset . '"' . $this->eol; 
      		$message .= 'Content-Transfer-Encoding: base64' . $this->eol . $this->eol;
	  		$message .= chunk_split(base64_encode($this->html)); 
			$message .= '--' . $boundary . '_alt--' . $this->eol;		 
		}
		
    	foreach ($this->attachments as $attachment) {  
      		$filename = basename($attachment);  
      		$handle = fopen($attachment, 'r'); 
      		$content = fread($handle, filesize($attachment));
      
	  		fclose($handle);  
	  
      		$message .= '--' . $boundary . $this->eol;
      		$message .= 'Content-Type: application/octetstream' . $this->eol;    
      		$message .= 'Content-Transfer-Encoding: base64' . $this->eol; 
      		$message .= 'Content-Disposition: attachment; filename="' . $filename . '"' . $this->eol; 
      		$message .= 'Content-ID: <' . $filename . '>' . $this->eol . $this->eol;
      		$message .= chunk_split(base64_encode($content));
    	}  

		if ($this->protocol == 'mail') {
			ini_set('sendmail_from', $this->from);
		
    		mail($to, $this->subject, $message, $header);  
		} elseif ($this->protocol == 'smtp') {
			$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);	
			
			if (!$handle) {
				error_log('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 (!empty($this->username)  && !empty($this->password)) {
					fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->eol);
					
					$reply = '';
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') { 
							break; 
						}
					}
				
					if (substr($reply, 0, 3) != 250) {
						error_log('Error: EHLO not accepted from server!');
					}
					
					fputs($handle, 'AUTH LOGIN ' . $this->eol);
	
					$reply = '';
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') { 
							break; 
						}
					}
					
					if (substr($reply, 0, 3) != 334) {
						error_log('Error: AUTH LOGIN not accepted from server!');
					}
	
					fputs($handle, base64_encode($this->username) . $this->eol);
	
					$reply = '';
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') { 
							break; 
						}
					}
					
					if (substr($reply, 0, 3) != 334) {
						error_log('Error: Username not accepted from server!');
					}				
	
					fputs($handle, base64_encode($this->password) . $this->eol);
	
					$reply = '';
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') { 
							break; 
						}
					}
					
					if (substr($reply, 0, 3) != 235) {
						error_log('Error: Password not accepted from server!');					
					}	
				} else {
					fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->eol);
	
					$reply = '';
				
					while ($line = fgets($handle, 515)) {
						$reply .= $line;
					
						if (substr($line, 3, 1) == ' ') { 
							break; 
						}
					}
					
					if (substr($reply, 0, 3) != 250) {
						error_log('Error: HELO not accepted from server!');
					}				
				}
	
				fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . $this->eol);
	
				$reply = '';
			
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
				
					if (substr($line, 3, 1) == ' ') { 
						break; 
					}
				}
				
				if (substr($reply, 0, 3) != 250) {
					error_log('Error: MAIL FROM not accepted from server!');
				}
				
				if (!is_array($this->to)) {
					fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->eol);
		
					$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)) {
						error_log('Error: RCPT TO not accepted from server!');
					}			
				} else {
					foreach ($this->to as $recipient) {
						fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->eol);
			
						$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)) {
							error_log('Error: RCPT TO not accepted from server!');
						}						
					}
				}
	
				fputs($handle, 'DATA' . $this->eol);
	
				$reply = '';
			
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
				
					if (substr($line, 3, 1) == ' ') { 
						break; 
					}
				}
						
				if (substr($reply, 0, 3) != 354) {
					error_log('Error: DATA not accepted from server!');
				}
				
				fputs($handle, $header . $message . $this->eol);
				fputs($handle, '.' . $this->eol);
				
				$reply = '';
			
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
				
					if (substr($line, 3, 1) == ' ') { 
						break; 
					}
				}
				
				if (substr($reply, 0, 3) != 250) {
					error_log('Error: DATA not accepted from server!');
				}
	
				fputs($handle, 'QUIT' . $this->eol);
	
				$reply = '';
			
				while ($line = fgets($handle, 515)) {
					$reply .= $line;
				
					if (substr($line, 3, 1) == ' ') { 
						break; 
					}
				}
				
				if (substr($reply, 0, 3) != 221) {
					error_log('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 axxies » Sun Sep 27, 2009 1:19 pm

Thanks Daniel, but I tried that piece of code before I made the posting. It doesn't work for my hosting company that uses port 587 for SMTP. The bug/problem remains.

Daniel wrote:I posted a new fixed version somewhere here it is again:

Code: Select all

.
.
.

New member

Posts

Joined
Thu Sep 03, 2009 4:30 pm

Post by Daniel » Sun Sep 27, 2009 7:30 pm

then look up the other google port that is allowed to be used!

and enter that in the admin settings.

OpenCart®
Project Owner & Developer.


User avatar
Administrator

Posts

Joined
Fri Nov 03, 2006 6:57 pm

Post by fido-x » Tue Sep 29, 2009 9:15 am

I host my own services from home (DNS, Web and Mail), this requires that I use my ISP's mail server for outgoing mail. This means, I need to use SMTP to send out any emails from the OpenCart system.

The code in "system/library/mail.php" has had quite a few changes between 1.3.0 (where it worked) and 1.3.2 (where, in my case, it didn't). However, replacing the code in this file with what Daniel has posted in this thread solved all my mail problems. Therefore, I can confirm that the replacement code DOES WORK!

If you're still having problems, try using your ISP's mail server for outgoing mail (with the appropriate username and password). In other words, use the same information that you use for outgoing email that you use in your email client (eg. Thunderbird, Outlook, or whatever you use).

Image
Modules for OpenCart 2.3.0.2
Homepage Module [Free - since OpenCart 0.7.7]
Multistore Extensions
Store Manager Multi-Vendor/Multi-Store management tool

If you're not living on the edge ... you're taking up too much space!


User avatar
Expert Member

Posts

Joined
Sat Jun 28, 2008 1:09 am
Location - Tasmania, Australia

Post by axxies » Tue Sep 29, 2009 1:27 pm

Hi again,

I am not using Google mail for SMTP, I use my ISP. They have set port 587 for some reason. No other port works at them. I have set up OpenCart to use port 587 and it doesn't work.

New member

Posts

Joined
Thu Sep 03, 2009 4:30 pm

Post by fido-x » Thu Oct 01, 2009 7:44 am

axxies wrote:Hi again,

I am not using Google mail for SMTP, I use my ISP. They have set port 587 for some reason. No other port works at them. I have set up OpenCart to use port 587 and it doesn't work.
Since your host is using a "non-standard" port for SMTP, probably means they require authentication. In this case, your username is your email address (eg. username@mailserver).

Image
Modules for OpenCart 2.3.0.2
Homepage Module [Free - since OpenCart 0.7.7]
Multistore Extensions
Store Manager Multi-Vendor/Multi-Store management tool

If you're not living on the edge ... you're taking up too much space!


User avatar
Expert Member

Posts

Joined
Sat Jun 28, 2008 1:09 am
Location - Tasmania, Australia

Post by axxies » Thu Oct 01, 2009 11:33 am

I am using this hosting company for several other sites and yes, authentication is mandatory for the other sites too. Yet, this does not work with Opencart.

New member

Posts

Joined
Thu Sep 03, 2009 4:30 pm
Who is online

Users browsing this forum: No registered users and 4 guests