OsCommerce – SMTP with authentication

Oscommerce SMTP Authentication with email format, this was the request from one of our clients. Yesterday, I were working on a project with older version of OsCommerce ( I know it is not great solution, but client is already using it for long time and don’t want to change)

The current installation had ‘sendmail’ configured that never worked as it was disabled at server level, oops 🙁

Instead of directly implementing anything, I found this add-on:  “smtp through the authentication smtp server

After installation, I was happy that it worked and I was able to set the smtp details but then starts the pain. All emails were being sent through SMTP, Great, but without formatting. Ok, I thought it could be email format issue. Set it to ‘text’ format, still same. Ok, set it as HTML, still same.

Now, it was time to look into the issue. After sometime of digging, I found an issue in email.php (includes/classes)

I commented few lines and added few in function send:

oscommerce-smtp

WOW, this fixed the problem of emails sent from store front, so same implementation was done in email.php in admin/includes/classes folder.

So Why, I am posting this simple fix; For the benefit of others. I tried to find some place at add-on download page but no place for comment or raise issue hence added it here.

The idea is simple, pay back to community whenever possible. My 2cents of contribution

Code as text:
/*if($body){
$message->setBody($body, 'text/html', CHARSET);
}
if($this->text){
$message->setBody($this->text, 'text/plain', CHARSET);
}
else{
$message->setBody($this->html_text, 'text/html', CHARSET);
} */
if(EMAIL_USE_HTML && $body){
$message->setBody($body, 'text/html', CHARSET);
}elseif( !EMAIL_USE_HTML && $body){
$message->setBody($body, 'text/plain', CHARSET);
}else{
$message->setBody($this->html_text, 'text/html', CHARSET);
}

Leave a Reply

Your email address will not be published. Required fields are marked *