View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006468 | OXID eShop (all versions) | 4.03. 3rd party libraries | public | 2016-08-08 17:36 | 2019-03-26 15:47 |
Reporter | vanilla thunder | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 4.9.9 / 5.2.9 | ||||
Fixed in Version | 6.2.0-beta.1 | ||||
Summary | 0006468: PHPMailer 5.2.14 + Microsoft Exchange = corrupt email body | ||||
Description | There is a problem with this particular version of PHPMailer. Mails sent to Exchange Server without base64 encoding will arrive broken. This affects every client connecting to exchange server: outlook, android gmail client, android exchange app, iphone, OWA, firebird PHP Version does not matter here, we have two 4.9 Shops (PE and CE) with different php versions hosted on profihost server, and we can always reproduce this bug in both shops. Link to PHPMailer bug 0000751 https://github.com/PHPMailer/PHPMailer/issues/751 | ||||
Steps To Reproduce | 1) find someone with an exchange server 2) create an account with email address hosted on this exchange server 3) place order 4) if it "works", you will see random visible html tags in your email and broken layout | ||||
Additional Information | the easiest solution would be adding base64 encoding to the constructor: $this->set('Encoding','base64'); I have created a module for our shops to fix that: https://github.com/vanilla-thunder/fix-phpmailer On 30th July I already had a short conversation with Keywan Ghadami about this bug, but back then we thought this bug would affect only outlook clients and not the exchange server itself. | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
Theme | All | ||||
Browser | Not defined | ||||
PHP Version | All | ||||
Database Version | Not defined | ||||
|
Hi, had the same problem and found another solution and maybe the actual problem. The problem is also known in the sendmailer issue tracker: https://github.com/PHPMailer/PHPMailer/issues/606 It seems to be the "setWordWrap" method. If if have an alt body the wordwrap isnt executed on the html body and the method "hasLineLongerThanMax" returns true and enables the quoted-printable encoding. I think the combination is having an alt body and an html body with lines that exceeds the maximum of 1000chars is the problem. I moved the html body wrapping out of the switch, so that the alt and html body get an wrapping and cant reproduce it anymore, but im not sure if thats the ideal fix or more like an workaround. I could fix it with the changing the method or simply change the text in the cms, that it dosnt exceed 1000chars per line. |
|
Should be fixed with https://github.com/OXID-eSales/oxideshop_ce/pull/697, please double check. |