Zend_Mail-Encoding.xml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 19518 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.mail.encoding">
  5. <title>Kodierung</title>
  6. <para>
  7. Text und HTML Nachrichten werden standardmäßig mit dem "quotedprintable" Mechanismus
  8. kodiert. Nachrichten Header werden auch mit dem quotedprintable Mechanismus kodiert wenn in
  9. <methodname>setHeaderEncoding()</methodname> nicht base64 spezifiziert wurde. Wenn man eine
  10. Sprache verwendet die nicht auf römischen Buchstaben basiert, ist base64 besser geeignet.
  11. Alle anderen Anhänge werden über "base64" kodiert, wenn an den <acronym>MIME</acronym> Teil
  12. keine andere Kodierung über den <methodname>addAttachment()</methodname> Aufruf übergeben
  13. oder später zugewiesen worden ist. 7Bit und 8Bit Kodierung können derzeit nur auf binärische
  14. Inhalte angewandt werden.
  15. </para>
  16. <para>
  17. Die Kodierung des Headers, speziell die Kodierung des Subjects ist ein trickreiches Thema.
  18. <classname>Zend_Mime</classname> implementiert aktuell seinen eigenen Algorithmus um
  19. quotedprintable Header nach RFC-2045 zu kodieren. Der Hintergrund ist das
  20. Problem von <code>iconv_mime_encode</code> und <code>mb_encode_mimeheader</code> in Bezug zu
  21. bestimmten Zeichensätzen. Dieser Algorithmus unterbricht den Header nur bei Leerzeichen, das
  22. zu Headern führen könnte welche die erwartete Länge von 76 Zeichen weit überschreiten. Für
  23. diesen Fall wird vorgeschlagen zur BASE64 Header Kodierung zu wechseln, wie im folgenden
  24. Beispiel beschrieben:
  25. </para>
  26. <programlisting language="php"><![CDATA[
  27. // Standardmäßig Zend_Mime::ENCODING_QUOTEDPRINTABLE
  28. $mail = new Zend_Mail('KOI8-R');
  29. // Auf Base64 Kodierung zurücksetzen da russisch ausgedrückt in KOI8-R zu
  30. // Römisch basierten Buchstaben sehr unterschiedlich ist
  31. $mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);
  32. ]]></programlisting>
  33. <para>
  34. <classname>Zend_Mail_Transport_Smtp</classname> kodiert die Zeilen beginnend mit einem oder
  35. zwei Punkten, so dass die Mail das SMTP Protokoll nicht missachtet.
  36. </para>
  37. </sect1>
  38. <!--
  39. vim:se ts=4 sw=4 et:
  40. -->