Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

SMTP Authentication and OSCommerce


bscanzoni

Recommended Posts

Hello all,

 

I am usually not so nice as to post things of this nature, but since I have bruises (exaggeration) on my knuckles from punching the walls earlier, I figured I'd go ahead and share. As much as I'd love to package this up and "contribute", I am in the middle of a big project. If anyone wants to do this, feel free to do it and credit yourself as I am only doing this so noone else considers suicide over this crap (kidding).

 

Basically, a huge problem arrises with the php function "mail" if your server requires SMTP authentication. Tell tale sign of this, is the ability for you to send mail to your domain or any domain on the server (if virtual).

 

While, I found a contribution that was supposed to address this, I could not get to work. So I said screw it, and went with what I know works and have had to use in my other scripts. A script is circulating the internet dubbed sock_mail.php which bascially uses pear(?) to open an actual SMTP connection. This function supports authentication.

 

So what I did was scrap the whole email class and modified the tep_mail function to gather and restructure the incoming data and pass it to sock_mail. Simple enough - here is the code. Keep in mind, I just did this, so there could be potential issues which I would be very grateful if someone would point out now.

 

These instructions are for /includes/functions/general.php only - you will probably need to do the same general.php under /admin

 

Anyway, open /includes/functions/general.php.

 

Before the tep_mail function insert (configure the variables located at the top of this function to match your configuration (username/pass)):

 

function sock_mail($auth,$to, $subj, $body, $head, $from){
      $lb="\r\n";                        //linebreak
      $body_lb="\r\n";                //body linebreak
      $loc_host = "localhost";        //localhost
      $smtp_acc = "username";        //account
      $smtp_pass="password";            //password
      $smtp_host="localhost";    //server SMTP
      #$hdr = explode($lb,$head);        //header
      
      if($body) {$bdy = preg_replace("/^\./","..",explode($body_lb,$body));}
      
      // build the array for the SMTP dialog. Line content is array(command, success code, additonal error message)
      if($auth == 1){// SMTP authentication methode AUTH LOGIN, use extended HELO "EHLO"
          $smtp = array(
              // call the server and tell the name of your local host
              array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
              // request to auth
              array("AUTH LOGIN".$lb,"334","AUTH error:"),
              // username
              array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
              // password
              array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
      } 
      else {// no authentication, use standard HELO    
          $smtp = array(
              // call the server and tell the name of your local host
              array("HELO ".$loc_host.$lb,"220,250","HELO error: "));
      }
  
      
      // envelop
      $smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
      $smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
      // begin data        
      $smtp[] = array("DATA".$lb,"354","DATA error: ");
      // header
      $smtp[] = array("Subject: ".$subj.$lb,"","");
      $smtp[] = array("To:".$to.$lb,"","");        
      foreach($head as $h) {$smtp[] = array($h.$lb,"","");}
      // end header, begin the body
      $smtp[] = array($lb,"","");
      if($bdy) {foreach($bdy as $b) {$smtp[] = array($b.$body_lb,"","");}}
      // end of message
      $smtp[] = array(".".$lb,"250","DATA(end)error: ");
      $smtp[] = array("QUIT".$lb,"221","QUIT error: ");

      // open socket
      $fp = @fsockopen($smtp_host, 25);
      if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
      
      $banner = @fgets($fp, 1024);
      // perform the SMTP dialog with all lines of the list
      foreach($smtp as $req){
          $r = $req[0];
          // send request
          @fputs($fp, $req[0]);
          // get available server messages and stop on errors
          if($req[1]){
              while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }};
              if (!strstr($req[1],substr($result,0,3))) echo"$req[2].$result<br>";
          }
      }
      $result = @fgets($fp, 1024);
      // close socket
      @fclose($fp);
      return 1;
  }  

 

Next, scrap the whole tep_mail function and replace with :

 

  function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) {
   $headers[0]='MIME-Version: 1.0';
$headers[1]='Content-type: text/html; charset=iso-8859-1';
$headers[2]='From: '.$from_email_name.'<'.$from_email_address.'>';
$from = $from_email_address;
$subject = $email_subject;
$catre = $to_email_address;
$email_text = str_replace("\n", "<br>", $email_text);
sock_mail(1,$catre,$subject,$email_text,$headers,$from);
	 
 }

 

Finally, verify that your email settings in the admin panel are as follows:

 

E-Mail Transport Method: smtp

E-Mail Linefeeds: CRLF

Use MIME HTML When Sending Emails: true

Verify E-Mail Addresses Through DNS: false

Send E-Mails: true

 

There you go, problem solved - you should be able to send mail without an issue now. Or this will at least be a good starting point for you.

Link to comment
Share on other sites

  • 2 weeks later...
  • Replies 104
  • Created
  • Last Reply

Nice Job!

1 error I encountered in:

  function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) {
  $headers[0]='MIME-Version: 1.0';
$headers[1]='Content-type: text/html; charset=iso-8859-1';
$headers[2]='From: '.$from_email_name.'<'.$from_email_address.'>';
$from = $from_email_address;
$subject = $email_subject;
$catre = $to_email_address;
$email_text = str_replace("\n", "<br>", $email_text);
sock_mail(1,$catre,$subject,$email_text,$headers,$from);

}

Could not use the last bracket }

Also they must comment out or remove the following in /includes/classes/email.php:

      if (EMAIL_TRANSPORT == 'smtp') {
       return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
     } else {
       return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
     }

Also in admin under Configuration-My Store- Send Extra Order Emails To

it should be [email protected] not You <[email protected]>

 

Nice job!

Link to comment
Share on other sites

To late to edit.

In this section of code to eliminate the double spacing in the email change this line:

 

$email_text = str_replace("\n", "<br>", $email_text);

to:

$email_text = str_replace("\n", "\r\n", $email_text);

so it all looks like:

function sock_mail($auth,$to, $subj, $body, $head, $from){
     $lb="\r\n";                        //linebreak
     $body_lb="\r\n";                //body linebreak
     $loc_host = "localhost";        //localhost
     $smtp_acc = "username";        //account
     $smtp_pass="password";            //password
     $smtp_host="localhost";    //server SMTP
     #$hdr = explode($lb,$head);        //header
    
     if($body) {$bdy = preg_replace("/^\./","..",explode($body_lb,$body));}
    
     // build the array for the SMTP dialog. Line content is array(command, success code, additonal error message)
     if($auth == 1){// SMTP authentication methode AUTH LOGIN, use extended HELO "EHLO"
         $smtp = array(
             // call the server and tell the name of your local host
             array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
             // request to auth
             array("AUTH LOGIN".$lb,"334","AUTH error:"),
             // username
             array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
             // password
             array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
     }
     else {// no authentication, use standard HELO    
         $smtp = array(
             // call the server and tell the name of your local host
             array("HELO ".$loc_host.$lb,"220,250","HELO error: "));
     }

    
     // envelop
     $smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
     $smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
     // begin data        
     $smtp[] = array("DATA".$lb,"354","DATA error: ");
     // header
     $smtp[] = array("Subject: ".$subj.$lb,"","");
     $smtp[] = array("To:".$to.$lb,"","");        
     foreach($head as $h) {$smtp[] = array($h.$lb,"","");}
     // end header, begin the body
     $smtp[] = array($lb,"","");
     if($bdy) {foreach($bdy as $b) {$smtp[] = array($b.$body_lb,"","");}}
     // end of message
     $smtp[] = array(".".$lb,"250","DATA(end)error: ");
     $smtp[] = array("QUIT".$lb,"221","QUIT error: ");

     // open socket
     $fp = @fsockopen($smtp_host, 25);
     if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
    
     $banner = @fgets($fp, 1024);
     // perform the SMTP dialog with all lines of the list
     foreach($smtp as $req){
         $r = $req[0];
         // send request
         @fputs($fp, $req[0]);
         // get available server messages and stop on errors
         if($req[1]){
             while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }};
             if (!strstr($req[1],substr($result,0,3))) echo"$req[2].$result<br>";
         }
     }
     $result = @fgets($fp, 1024);
     // close socket
     @fclose($fp);
     return 1;
 }
 function tep_mail($to_name, $to_email_address, $email_subject, $email_text, $from_email_name, $from_email_address) {
  $headers[0]='MIME-Version: 1.0';
$headers[1]='Content-type: text/html; charset=iso-8859-1';
$headers[2]='From: '.$from_email_name.'<'.$from_email_address.'>';
$from = $from_email_address;
$subject = $email_subject;
$catre = $to_email_address;
$email_text = str_replace("\n", "\r\n", $email_text);
sock_mail(1,$catre,$subject,$email_text,$headers,$from);

Link to comment
Share on other sites

  • 4 years later...

Good stuff.

 

This is how I ended up tying it all together.

 

I left the tep_mail function alone and added the sock_mail function with a minor tweak to allow the usual e-mail address format.

 

Stick this in general.php (both of em)

 

function sock_mail($auth,$to, $subj, $body, $head, $from)
{
	$lb="\r\n";                        	//linebreak
	$body_lb="\r\n";                	//body linebreak
	$loc_host = "localhost";        	//localhost
	$smtp_acc = "account";        	//account
	$smtp_pass="password";   		//password
	$smtp_host="192.168.0.1";    		//server SMTP
	#$hdr = explode($lb,$head);        	//header

	// mod for $from = "joe blow joe@blow" - dblackmon
	if (strrpos($from,' ')!= false) 
	{
		$from = substr($from, strrpos($from,' ') + 1);
		$from = str_replace(array("<", ">"), '', $from);
	}

	if($body) {$bdy = preg_replace("/^\./","..",explode($body_lb,$body));}

	// build the array for the SMTP dialog. Line content is array(command, success code, additonal error message)
	if($auth == 1){// SMTP authentication methode AUTH LOGIN, use extended HELO "EHLO"
	    $smtp = array(
	        // call the server and tell the name of your local host
	        array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
	        // request to auth
	        array("AUTH LOGIN".$lb,"334","AUTH error:"),
	        // username
	        array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
	        // password
	        array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
	}
	else {// no authentication, use standard HELO    
	    $smtp = array(
	        // call the server and tell the name of your local host
	        array("HELO ".$loc_host.$lb,"220,250","HELO error: "));
	}

	// envelop
	$smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
	$smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
	// begin data        
	$smtp[] = array("DATA".$lb,"354","DATA error: ");
	// header
	$smtp[] = array("Subject: ".$subj.$lb,"","");
	$smtp[] = array("To:".$to.$lb,"","");        
	foreach($head as $h) {$smtp[] = array($h.$lb,"","");}
	// end header, begin the body
	$smtp[] = array($lb,"","");
	if($bdy) {foreach($bdy as $B) {$smtp[] = array($b.$body_lb,"","");}}
	// end of message
	$smtp[] = array(".".$lb,"250","DATA(end)error: ");
	$smtp[] = array("QUIT".$lb,"221","QUIT error: ");
			 // open socket
	$fp = @fsockopen($smtp_host, 25);
	if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
			 $banner = @fgets($fp, 1024);
	// perform the SMTP dialog with all lines of the list
	foreach($smtp as $req){
	    $r = $req[0];
	    // send request
	    @fputs($fp, $req[0]);
	    // get available server messages and stop on errors
	    if($req[1]){
	        while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }};
	        if (!strstr($req[1],substr($result,0,3))) echo"$req[2].$result<br>";
	    }
	}
	$result = @fgets($fp, 1024);
	// close socket
	@fclose($fp);
	return 1;
}

 

Then I added this function to general.php because the way oscommerce was handling (mishandling) line breaks was making me crazy.

 

//
// dblackmon - replaces tep_convert_linefeeds
//
function dan_convert_linefeeds($to, $string)
{
	$text = explode("\n", $string );
	foreach ($text as $text_piece)
	{
		$new_piece[] = str_replace("\r", '', $text_piece);
	}
	return implode($to,$new_piece);
}

 

Finally,

 

I made these changes is e-mail.php (both of them)

   function add_text($text = '') 
{
//dblackmon - fix double lf's	$this->text = tep_convert_linefeeds(array("\r\n", "\n", "\r"), $this->lf, $text);
	$this->text = dan_convert_linefeeds($this->lf, $text);
   }

function add_html($html, $text = NULL, $images_dir = NULL) 
{
//dblackmon - fix double lf's    	$this->html = tep_convert_linefeeds(array("\r\n", "\n", "\r"), '<br>', $html);
//dblackmon - fix double lf's     	$this->html_text = tep_convert_linefeeds(array("\r\n", "\n", "\r"), $this->lf, $text);
	$this->html = dan_convert_linefeeds('<br>', $html);
	$this->html_text = dan_convert_linefeeds($this->lf, $text);

     if (isset($images_dir)) $this->find_html_images($images_dir);
   }

 

Finally, this fixes up the SMTP

 

// dblackmon - SMTP AUTH        return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
	return sock_mail(1, $to_addr, $subject, $this->output, explode($this->lf,'From: '.$from.$this->lf.
					 implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers)),$from_addr);

Link to comment
Share on other sites

  • 2 years later...

Hi

 

I have the ssme problem right now. My host disabling PHPMail function and need I to update the scripts and use SMTP authentication.

 

Can anyone describe exactly what I should do? I´ts little hard to find round in this thread.

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

It wasn't easy for me to get this working as an amateur, but I did get there in the end. Issues I had to deal with:

 

(1) different error codes (actually status codes as I learnt) kept being thrown up through the smtp communication. Apparently they weren't errors - which begin 4xx or 5xx - so I added them to the list of allowed "error" codes in the code:

 

eg instead of $smtp[] = array("DATA".$lb,"354","DATA error: ");

 

I used $smtp[] = array("DATA".$lb,"250,354","DATA error: ");

 

ie I added to 250 to the list as it kept coming up when it didn't seem to indicate a real problem

 

(2) don't forget to use the correct port number in $fp = @fsockopen($smtp_host, 25); my port was actually 465!

 

(3) after getting the code to deliver e-mails they all turned out to be empty - in the end I traced it case sensitive code - the error required a large "B" to be changed to a small "b" in if($bdy) {foreach($bdy as $B) {$smtp[] = array($b.$body_lb,"","");}} - not "as $B" but "as $b"!!!!!!!!!!!!!!!!!!!

 

So at least don't waste time on these ...

Link to comment
Share on other sites

  • 7 months later...
  • 4 months later...

Hi

 

I have the ssme problem right now. My host disabling PHPMail function and need I to update the scripts and use SMTP authentication.

 

Can anyone describe exactly what I should do? I´ts little hard to find round in this thread.

 

I have this problem...I am sure lots of others have as well, my mail does not work now and I have no idea how to fix it...I can do small code changes etc but I can't follow the above Does anyone know of a straight forward set of mods that can be done for 2.3.1 to get my mail working again since my hosting company have disabled the php mail function?

Link to comment
Share on other sites

  • 3 months later...

Upgraded to 2.3.3 and now there is no way to make the mail work for smtp email on windows 2008. Server has no email server on it.

So I guess I will downgrade to 2.2 because it was working. Pretty much wasted several days, but I will downgrade until the problem is solved. I tried all the email mods and none works.

Link to comment
Share on other sites

Upgraded to 2.3.3 and now there is no way to make the mail work for smtp email on windows 2008. Server has no email server on it.

So I guess I will downgrade to 2.2 because it was working. Pretty much wasted several days, but I will downgrade until the problem is solved. I tried all the email mods and none works.

 

 

Ok I managed to get smtp email to work on windows 2008 server (local machine) not a hosted one so I have no email system on it. If anyone else need this, I will try to help, send me a pm

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

it does not work with 2.3.3 on linux server. When I try to send from website contact us page .coming an emty page writing browser addres section ............../catalog/contact_us.php?action=send

 

This is for SMTP auth - normally a WIndows thing.

 

Don't know if Linux uses SMTP, I know they use sendmail.

Chris Anderson

Co-Founder

Leander Knives

 

Link to comment
Share on other sites

Linux has SMTP available usally through Exim, but your site should be able to use sendmail under E-Mail Options in your admin panel.

 

There are several settings that can limit how smtp can be used but it all boils down to stopping spam. SMTP auth is a good thing though because it limits spam.

I'm not really a dog.

Link to comment
Share on other sites

  • 10 months later...

Also Sendmail doesnt work.

There is no option user ID passwords etc. The mails servers doesnt accept without them.

 

I Havent solved this problem and I want to use Swift Mailer 5.0.3 but now I have some error log like this.

 

Fatal error: Call to undefined method ReflectionClass::newInstanceArgs() in /var/www/vhosts/............./httpdocs/catalog/includes/classes/SwiftEmailer/classes/Swift/DependencyContainer.php on line 311

 

As a result I havent send and receive any email.

Link to comment
Share on other sites

Sendmail works and doesn't require user and password. Youhave to be on a linux server with mail sending capabilties, so it won't work on a local test server. If you're on a production linux server at a webhost and sendmail is not working then your problem is host/domain related because oscommerce has always worked with sendmail.

 

I don't know anything about swift mailer, but errors like this are easy to get more info on by using google to search for "ReflectionClass::newInstanceArgs" or even just ReflectionClass and it helps to add the software generating the error like in the this case SwiftEmailer. Of course, the php manual comes up for ReflectionClass.

http://www.php.net/manual/en/class.reflectionclass.php

I'm not really a dog.

Link to comment
Share on other sites

  • 3 months later...

My webhost is forcing me to use smtp authentication so would could I do? I cannot get the above code from "sonofsmog" to work in my 2.3.1 shop. I get a fatal error in admin email.php. Anyone that has got this to work?

Link to comment
Share on other sites

If you are on a linux server use sendmail in your admin section. Read the whole thread and I assure you that sendmail works.

I'm not really a dog.

Link to comment
Share on other sites

My webhost is forcing me to use smtp authentication so would could I do? I cannot get the above code from "sonofsmog" to work in my 2.3.1 shop. I get a fatal error in admin email.php. Anyone that has got this to work?

 

Hi,

 

https://github.com/Gergely/oscommerce2-1/commit/30ad1cb48326221eceb43a0166be33b91c0668fd

 

and you can use https://github.com/PHPMailer/PHPMailer as ext modules

 

Copy PHPMailer to catalog/ext/modules/PHPMailer/

 

Run sql commands from commit and setup in admin configure/mails.

 

Only one requirements need PHP 5 or above.

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

Well, it does not work. I have discussed this with my webhost and they say they don't allow it anymore. All emails has to be sent via a smtp server. It is a big problem for us since our customers are not able to receive order confirmation. It has to be sent manually.

Link to comment
Share on other sites

PHPMailer uses authenticated SMTP protocol. What is the problem with?

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

Hello Gergely. I have looked at your two links and have not understood what to do. I have added a lot of contributions before but this is more then I can handle I think. Could you clarify what to do. Is there a simple readme file with explanations of how this should be done?

Link to comment
Share on other sites

1. Download https://github.com/PHPMailer/PHPMailer (zip)

2. extract to a folder

3. upload the unzipped files to oscommerce site into /ext/modules/PHPMailer/ folder

4. Download email.php for catalog site from here https://github.com/Gergely/oscommerce2-1/blob/30ad1cb48326221eceb43a0166be33b91c0668fd/catalog/admin/includes/classes/email.php

 

5. rename on the site includes/classes/email.php to old_email.php

6. upload the new previous downloaded email.php into includes/classes/

7. download for admin email.php class from here https://github.com/Gergely/oscommerce2-1/blob/30ad1cb48326221eceb43a0166be33b91c0668fd/catalog/includes/classes/email.php

8. rename admin includes/classes/email.php to old_email.php

9. upload for admin email.php into admin/includes/classes/email.php

10. Add new configuration functions into admin/includes/functions/general.php

before appox in 808 line

 

function tep_cfg_password($password) {
return preg_replace("|.|", "*", $password);
}
function tep_cfg_input_password($password) {
return tep_draw_password_field('configuration_value', $password);
}

 

before this note:

 

////

// Alias function for module configuration keys

 

11. run sql update

INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('SMTP hosts', 'EMAIL_SMTP_HOSTS', '', 'Assign SMTP host senders', '12', '6', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('SMTP authentication', 'EMAIL_SMTP_AUTHENTICATION', 'true', 'Do you want authenticated SMTP server?', '12', '7', 'tep_cfg_select_option(array(\'true\', \'false\'), ', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) VALUES ('SMTP Password', 'EMAIL_SMTP_PASSWORD', '', 'Add SMTP Password for SMTP protocol', '12', '8', 'tep_cfg_password', 'tep_cfg_input_password(', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('SMTP User', 'EMAIL_SMTP_USER', '', 'Add SMTP user for SMTP protocol', '12', '9', now());
INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) VALUES ('SMTP Reply To', 'EMAIL_SMTP_REPLYTO', '', 'Add SMTP reply to address', '12', '10', now());

 

12. config SMTP settings in admin configuration email section (set to SMTP the email section)

- add smtp server

- add SMTP user

- add smtp password

- add smtp email address

 

Note: For gMail smtp function need to modify EMAIL_TRANSPORT defined constant's set_function field by hand

The new value should be

tep_cfg_select_option(array(\'gmail\', \'sendmail\', \'smtp\'),

but this altered field value not important now.

 

Latest summered commit here: https://github.com/Gergely/oscommerce2-1/commit/b02e44c5b559419f75ac7ed1301de07989cec622

:blink:
osCommerce based shop owner with minimal design and focused on background works. When the less is more.
Email managment with tracking pixel, package managment for shipping, stock management, warehouse managment with bar code reader, parcel shops management on 3000 pickup points without local store.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...