toast691 Posted July 19, 2017 Share Posted July 19, 2017 Good Morning. (Morning in Australia anyway) Since upgrading to 6.1.7 customers have not received email updates in regard to their orders. We have still been getting order notifications to our admin email and the settings are correct in Settings>store settings>Advanced It is currently set up as PHP.. Previously it SMTP with SSL but it was the same with only admin getting emails. Any ideas where to start looking? Cheers Stami Quote Link to comment Share on other sites More sharing options...
bsmither Posted July 20, 2017 Share Posted July 20, 2017 As of a recent version, CubeCart now logs most, if not all, emails sent out. If the Email Log shows messages sent to customers, then the loss is outside of CubeCart. If the logs show a problem, or the emails are not logged at all, then we can start tracing down the problem. Quote Link to comment Share on other sites More sharing options...
toast691 Posted July 20, 2017 Author Share Posted July 20, 2017 There have been no emails logged since 11th of July which is when I was playing around with email settings and used the test email option. New orders come in every day and we have been getting emails to our admin email as I said but there is nothing in the log about them either. I updated to 6.1.8 today with no change. Stami Quote Link to comment Share on other sites More sharing options...
bsmither Posted July 20, 2017 Share Posted July 20, 2017 In Store Settings, Advanced tab, what do you have entered for Email Log Retention? Quote Link to comment Share on other sites More sharing options...
toast691 Posted July 20, 2017 Author Share Posted July 20, 2017 It has 30 entered in all of the log retention fields... Quote Link to comment Share on other sites More sharing options...
bsmither Posted July 20, 2017 Share Posted July 20, 2017 Hmm. Even the emails sent to the admin get logged. However, only proper emails will cause the log to be 'pruned' of entries older than 30 days. Which is to say, an email sent via the "Test" button on the Advanced tab does not get logged. But, a test send of a newsletter will get logged. In Newsletters, Create Newsletter (if you haven't created one as of yet), enter some miscellaneous stuff. Then on the Send Test Email tab, enter an email that is not of your store's domain - such as a personal gmail account. Let us know if you get it. See if it shows in the log. Quote Link to comment Share on other sites More sharing options...
toast691 Posted July 20, 2017 Author Share Posted July 20, 2017 Done exactly as you said.. Test newsletter sent to a personal hotmail address. The email was sent and showed up in my inbox. Not showing up in the log though. Quote Link to comment Share on other sites More sharing options...
bsmither Posted July 20, 2017 Share Posted July 20, 2017 Just to verify that CubeCart has a log in the database, please use an external utility, such as phpMyAdmin, a tool in your hosting control panel, and verify there is a table named CubeCart_email_log. Have the utility show you the records contained within it. Then, in your CubeCart installation, open the file /classes/mailer.class.php, scroll to near line 222, and verify there is code that deals with $log_days and the database table CubeCart_email_log. Quote Link to comment Share on other sites More sharing options...
toast691 Posted July 20, 2017 Author Share Posted July 20, 2017 Yes CubeCart_email_log exists in the database and there were logs for customers up until 20th June 2017 mostly order updates and some password recovery. In classes/mailer.class.php is the below code $log_days = $GLOBALS['config']->get('config', 'r_email'); if(ctype_digit((string)$log_days) && $log_days > 0) { $GLOBALS['db']->insert('CubeCart_email_log', $email_data); $GLOBALS['db']->delete('CubeCart_email_log', 'date < DATE_SUB(NOW(), INTERVAL '.$log_days.' DAY)'); } elseif(empty($log_days) || !$log_days) { $GLOBALS['db']->insert('CubeCart_email_log', $email_data); Quote Link to comment Share on other sites More sharing options...
toast691 Posted July 20, 2017 Author Share Posted July 20, 2017 I have tried changing to SMTP details and immediately there is a log of the following error: Request Sent - mailto:[email protected] Subject: Testing CubeCart Error: Mailer Failed Response received SERVER -> CLIENT: 421 Too many concurrent SMTP connections; please try again later.<br> CLIENT -> SERVER: EHLO www.greenpatchseeds.com.au<br> SERVER -> CLIENT: <br> SMTP ERROR: EHLO command failed: <br> SMTP NOTICE: EOF caught while checking if connected<br> SMTP Error: Could not authenticate.<br> SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Maybe cubecart doesn't log when using the email set up as PHP? Quote Link to comment Share on other sites More sharing options...
bsmither Posted July 20, 2017 Share Posted July 20, 2017 (edited) From the logic of this code, the value found in the Store Settings, Email Log Retention field would need to be either something that for every character looked like a digit, or was blank. Assuming the execution of the code reached this point. CubeCart's Mailer functions are used regardless whether one chooses PHP-Mail or SMTP. The Mailer communicates with the sending agent accordingly, but this is the code that initiates the email, populates its contents, and logs its departure out of CubeCart. The error message you got would indicate that the email server your hosting provider uses is configured to allow only so many emails to be accepted for sending out server-wide, and that has been exceeded. So, either the server your site is located is overloaded, or one or more sites on that server is using more than its share of the server's email program (maybe Exim?) (From an internet search of 421 Too many concurrent SMTP connections.) Edited July 20, 2017 by bsmither Quote Link to comment Share on other sites More sharing options...
bsmither Posted July 21, 2017 Share Posted July 21, 2017 "Test newsletter sent to a personal hotmail address. The email was sent and showed up in my inbox." So we know, basically, that your installation of CubeCart can send emails. The problem is apparently just not to the customer. "Not showing up in the log though." Here are some edits I would like for you to make. In /classes/mailer.class.php: Line 208: $this->Sender = $GLOBALS['config']->get('config', 'email_address'); On the blank line after that, add: $GLOBALS['debug']->errorLogger(E_USER_NOTICE, 'Ready to email.', __FILE__, __LINE__); Line 211: $result = $this->Send(); On the same line, at the end of what is already there, add: $GLOBALS['debug']->errorLogger(E_USER_NOTICE, 'Emailed.', __FILE__, __LINE__); Lines 222-232: $log_days = $GLOBALS['config']->get('config', 'r_email'); if(ctype_digit((string)$log_days) && $log_days > 0) { $GLOBALS['db']->insert('CubeCart_email_log', $email_data); $GLOBALS['db']->delete('CubeCart_email_log', 'date < DATE_SUB(NOW(), INTERVAL '.$log_days.' DAY)'); } elseif(empty($log_days) || !$log_days) { $GLOBALS['db']->insert('CubeCart_email_log', $email_data); } return $result; } return false; Change to: $log_days = $GLOBALS['config']->get('config', 'r_email'); if(ctype_digit((string)$log_days) && $log_days > 0) {$GLOBALS['debug']->errorLogger(E_USER_NOTICE, 'Logging with days > 0:'.$log_days, __FILE__, __LINE__); $GLOBALS['db']->insert('CubeCart_email_log', $email_data); $GLOBALS['db']->delete('CubeCart_email_log', 'date < DATE_SUB(NOW(), INTERVAL '.$log_days.' DAY)'); } elseif(empty($log_days) || !$log_days) {$GLOBALS['debug']->errorLogger(E_USER_NOTICE, 'Logging with days empty.', __FILE__, __LINE__); $GLOBALS['db']->insert('CubeCart_email_log', $email_data); } else {$GLOBALS['debug']->errorLogger(E_USER_NOTICE, 'Not logged. Days has a problem:'.$log_days, __FILE__, __LINE__);} return $result; } $GLOBALS['debug']->errorLogger(E_USER_NOTICE, 'Failed to parse contents. Returning false.', __FILE__, __LINE__); return false; Either make another Newsletter test email send, or wait until a customer makes an order. Then examine the Mail Log, and also examine the System Error Log Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.