mail () σε PHP με UTF-8 και umlauts

Η αποστολή e-mail με PHP εφαρμόζεται καλύτερα με ισχυρές τάξεις όπως το PHPMailer . Οι βολικές λειτουργίες περιτυλίγματος καθιστούν δυνατή τη χρήση περιεχομένου UTF-8, την ενσωμάτωση εικόνων και την αποστολή κρυπτογραφημένων συνημμένων με λίγες μόνο γραμμές κώδικα. Εάν θέλετε να σώσετε τον εαυτό σας από τα γενικά έξοδα και, αντίθετα με τη σύσταση, χρησιμοποιήστε το PHP function mail () , θα αντιμετωπίσετε προβλήματα κατά τη χρήση του umlauts και του UTF-8 το αργότερο.


Αφού καλέσετε τη συνάρτηση με

mail(
   "vieldav@gmx.de",                          // Empfänger
   "ä ö ü ß",                                 // Betreff
   "ä ö ü ß",                                 // Inhalt
   "From: ä ö ü ß <david@vielhuber.de>"       // Header (Absender)
);

σε ένα κωδικοποιημένο αρχείο UTF-8 οδηγεί ήδη σε προβλήματα στα εισερχόμενα: το Outlook 2013 εξακολουθεί να είναι ευγενικό και εμφανίζει τα πάντα σωστά:

αλληλογραφία1

Ωστόσο, η GMX δεν συγχωρεί τις κεφαλίδες που λείπουν και δείχνει ένα κακό θέμα, αποστολέα και περιεχόμενο:

αλληλογραφία2

Εάν στείλετε τις σωστές κεφαλίδες (για παράδειγμα με base64_encode), λαμβάνετε

mail(
   "vieldav@gmx.de",                          				  // Empfänger
   "=?UTF-8?B?".base64_encode("ä ö ü ß")."?=",                            // Betreff
   "ä ö ü ß",                                 			 	  // Inhalt
   "Content-type: text/plain; charset=utf-8\r\n"
  ."From: =?UTF-8?B?".base64_encode("ä ö ü ß")."?=<david@vielhuber.de>"   // Header (Absender)
);

και τέλος το GMX δείχνει μια σωστή αναπαράσταση:

αλληλογραφία3

Πίσω