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

Το ηλεκτρονικό ταχυδρομείο με 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

Πίσω