Καλησπέρα,
Η λύση που προτείνεται στο Git να μετατρέπει όλο το content σε base64 είναι κάπως εμβαλωματική καθώς δεν διορθώνει το bug, το καλύπτει και δημιουργεί ένα άλλο θέμα ότι το κείμενο του mail δεν θα μπορεί πλέον να διαβαστεί ως plain text στο source του email και αυτό μπορεί να δυσκολέψει το debugging σε άλλες περιπτώσεις.
Το πρόβλημα δεν οφείλεται στο Content-Transfer-Encoding. Το πρωτόκολλο RFC 6152 (SMTP Service Extension for 8-bit MIME Transport) αναφέρει ότι μπορεί να διαχειριστεί κανονικά χαρακτήρες με octet range πέρα από ASCII όπως είναι οι UTF8 και αυτό μπορεί κανείς να το διαπιστώσει εύκολα αν χρησιμοποιήσει την μέθοδο MAIL που στέλνει μια χαρά emails με Content-Transfer-Encoding: 8bit. Υπό κανονικές συνθήκες κάνουμε base64 μόνο το θέμα που υποστηρίζει ASCII και τα attachments.
Έλεγξα τον αρχείο smtp.php και το πρόβλημα οφείλεται στον κώδικα της γραμμής 191. Προτείνω λοιπόν την ακόλουθη λύση για μέθοδο αποστολής μέσω SMTP:
(Η τροποποίηση να γίνει σε καθαρό αρχείο χωρίς τις άλλες τροποποιήσεις που αναφέρονται στο git.)
Στο αρχείο system/library/mail/smtp.php στη γραμμή 191
το:
Κώδικας: Επιλογή όλων$length = (mb_detect_encoding($message, mb_detect_order(), true) == 'ASCII') ? 998 : 249;
το κάνουμε:
Κώδικας: Επιλογή όλων$length = (mb_detect_encoding($message, mb_detect_order(), true)!== 'ASCII') ? 998 : 249;
Αλεξάνδρα Γκόγκα - Software Developer @ People’s Code
OpenCart-Hellas.gr - Administrator & Founder
PeoplesCode.com - Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Μεταφορά - Τεχνική Υποστήριξη OpenCart
Ελληνική μετάφραση & Επεκτάσεις OpenCart