This Open Source shop is the best I have ever used. 20 minutes had it installed and all but configured. What has killed me is the next 5 hours trying to get an email to display text at the clients end.
I have read all that I can and Googled the monkey out of my self but what gives. I even signed up to the demo site to see if the acceptance email was legible, and it was.
So to be precise....
With SMTP configuration on the email server settings emails arrive from Contact, Sale or Newsletter/Group with no text. I can look at the source with Thunderbird and see the text. Roundcube on the webmail has the same issue.
Any help is appreciated.....such good, good software otherwise. I even have the Aust Post module working...
I have read all that I can and Googled the monkey out of my self but what gives. I even signed up to the demo site to see if the acceptance email was legible, and it was.
So to be precise....
With SMTP configuration on the email server settings emails arrive from Contact, Sale or Newsletter/Group with no text. I can look at the source with Thunderbird and see the text. Roundcube on the webmail has the same issue.
Any help is appreciated.....such good, good software otherwise. I even have the Aust Post module working...
I see the same issue here. Dont matter if this is a pure text or html mail.
Text and attachments are send complete but not show up in google mail and also not thunderbird.
Now i figured out that if the mail is going to an Exchange Server i can see on the client side with Outlook and Outlook Web Access all the content.
Looks like the Mail is going out a bit malformed.
Text and attachments are send complete but not show up in google mail and also not thunderbird.
Now i figured out that if the mail is going to an Exchange Server i can see on the client side with Outlook and Outlook Web Access all the content.
Looks like the Mail is going out a bit malformed.
I do some further tests. And its looks like it depends on the Testenviroment. For testing i use XAMPP on Windows 7 with an smtp server from Google. In this case i get empty looking E-Mail. If i use the the same Test enviroment with an company intern SMTP Server then i can see also in Google Mail all E-Mail as it should look like.
turns out the customer order email looks good in gmail, but is blank (except logo) in mail.app (mac).
funny, because the order confirmation email that i get (starts with "You have received an order.") looks good in both gmail and mail.app.
i looked at the source code in both received emails and noticed something that could be the problem, but have no idea how to fix.
email header of customer email
email header of store owner order notification
i noticed that in the first code block "utf-8" is in quotes, but in the second block there is no quotes. i suspect that there must be a typo/error on the system/library/mail.php page to cause the quotes to show.
anyone have any ideas on how to fix so the quotes don't show?
my hope is that once it is fixed it will render correctly in all email applications.
funny, because the order confirmation email that i get (starts with "You have received an order.") looks good in both gmail and mail.app.
i looked at the source code in both received emails and noticed something that could be the problem, but have no idea how to fix.
email header of customer email
Code: Select all
X-Mailer: PHP/5.2.9
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_NextPart_487dbe0674f1a9a94e86d314fd930c55"
------=_NextPart_487dbe0674f1a9a94e86d314fd930c55
Content-Type: multipart/alternative; boundary="----=_NextPart_487dbe0674f1a9a94e86d314fd930c55_alt"
------=_NextPart_487dbe0674f1a9a94e86d314fd930c55_alt
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Code: Select all
X-Mailer: PHP/5.2.9
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_7f9e335e1084c824f9709850e206e64a"
------=_NextPart_7f9e335e1084c824f9709850e206e64a
Content-Type: multipart/alternative;
boundary="----=_NextPart_7f9e335e1084c824f9709850e206e64a_alt"
------=_NextPart_7f9e335e1084c824f9709850e206e64a_alt
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: 8bit
anyone have any ideas on how to fix so the quotes don't show?
my hope is that once it is fixed it will render correctly in all email applications.
Could anybody please help us with this.
I'm willing to do a donation to whomever fixes this.
I have the same solution.
I use a Google Apps account for sending the mails.
In a webbased gmail clien i receive the email correct but in Thunderbird/Postbox it's blank.
I'm willing to do a donation to whomever fixes this.
I have the same solution.
I use a Google Apps account for sending the mails.
In a webbased gmail clien i receive the email correct but in Thunderbird/Postbox it's blank.
Hello All,
I have a problem.
(version OC 1.4.9.4)
My email program mozilla thunderbird and postbox these emails come in "Blank." ( Just text - without image )
http://imageshack.us/photo/my-images/801/20670739.png/
Waiting for valuable answers.
Thanks.
Jeff
I have a problem.
(version OC 1.4.9.4)
My email program mozilla thunderbird and postbox these emails come in "Blank." ( Just text - without image )
http://imageshack.us/photo/my-images/801/20670739.png/
Waiting for valuable answers.
Thanks.
Jeff
Yes Yes Yes!
I Solved Problem!
vuuuuuvvvvvvvv!
Solved :
1- OC Version 1.4.9.4
2 - Mail Php Files; ( system/library/mail.php )
16. - 17.
37. - 38.
105.106.
Must be...
And my Mail.php file :
3 - Contact Form : ( admin/controller/sale/contact.php )
91. Deleted
110. Before
110. After & New
All Right!
Perfect Worked!
Hotmail, Gmail, Yahoo, AOL, Outlook, Outlook Express, Mozilla Thunderbird, Windows Mail, mail.mywebsite.com/mail
Working with all of them all...
Thanks All,
I Solved Problem!

vuuuuuvvvvvvvv!

Solved :
1- OC Version 1.4.9.4
2 - Mail Php Files; ( system/library/mail.php )
16. - 17.
Code: Select all
public $newline = "\n";
public $crlf = "\r\n";
Code: Select all
public function setSubject($subject) {
$this->subject = '=?UTF-8?B?' . base64_encode($subject) . '?=';
}
Code: Select all
$header .= 'Content-Transfer-Encoding: 8bit' . $this->newline;
$header .= $this->newline;
And my Mail.php file :
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 = '=?UTF-8?B?' . base64_encode($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 = '';
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: "' . $this->sender . '" <' . $this->from . '>' . $this->newline;
//$header .= 'From: ' . $this->sender . '<' . $this->from . '>' . $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 .= 'MIME-Version: 1.0' . $this->newline;
$header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . $this->newline;
$header .= 'Content-Transfer-Encoding: 8bit' . $this->newline;
$header .= $this->newline;
if (!$this->html) {
$message = '--' . $boundary . $this->newline;
$message .= '' . $this->newline;
$message .= '' . $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->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' . $this->newline;
$message .= 'Content-Transfer-Encoding: base64' . $this->newline;
$message .= 'Content-Disposition: attachment; filename="' . basename($attachment['filename']) . '"' . $this->newline;
$message .= 'Content-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) {
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 (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) {
error_log('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) {
error_log('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) {
error_log('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) {
error_log('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) {
error_log('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) {
error_log('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) {
error_log('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)) {
error_log('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)) {
error_log('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) {
error_log('Error: DATA not accepted from server!');
}
fputs($handle, $header . $message . $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) {
error_log('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) {
error_log('Error: QUIT not accepted from server!');
}
fclose($handle);
}
}
}
}
?>
91. Deleted
Code: Select all
$message = str_replace($value, 'cid:' . basename($filename), $message);
Code: Select all
$mail->addAttachment($attachment['path'], $attachment['filename']);
Code: Select all
$mail->addAttachment($attachment['filename'], $attachment['filename']);
Perfect Worked!
Hotmail, Gmail, Yahoo, AOL, Outlook, Outlook Express, Mozilla Thunderbird, Windows Mail, mail.mywebsite.com/mail
Working with all of them all...
Thanks All,
I have 1.5.3. version
I just use what JeffBeck35 use to mail.php and the issue was fixed. No more
Thanks JeffBeck35 for shared your knowledge with us. Very kind of you.
This is the time to thank the OpenCart team for their efforts to make this software valuable. My best wishes that your efforts result in professional and financial success.
I hope OpenCart follow the path of growth and remains a useful, practical and easy to use tool.
If I can help with my knowledge of Spanish would be a pleasure to do so.
I just use what JeffBeck35 use to mail.php and the issue was fixed. No more
Thanks JeffBeck35 for shared your knowledge with us. Very kind of you.
This is the time to thank the OpenCart team for their efforts to make this software valuable. My best wishes that your efforts result in professional and financial success.
I hope OpenCart follow the path of growth and remains a useful, practical and easy to use tool.
If I can help with my knowledge of Spanish would be a pleasure to do so.
Who is online
Users browsing this forum: Majestic-12 [Bot] and 13 guests