Harry: Multipart-Mails

Beitrag lesen

Holladiewaldfee,

Da bleibt für mich die Frage, ob man base64-Codierung generell nutzen kann für die Typen, die nicht plain-Text sind. Oder gibt es unter den eMail-Clients viele, die das nicht zurückübersetzen können? Verursacht base64 evtl. mehr Traffic, als für Multipart-Mails nötig wäre?

Ich verwende fast immer base64, ausser für Plaintext und HTML, da verwende ich meistens quoted-printable

Ich muss mich nun für die Codierung, also Content-Transfer-Encoding entscheiden. Welche Möglichkeiten hätte ich denn mit php4 sonst noch außer base64? Für quoted-printable habe ich keine Codierungsfunktion gefunden.

7Bit und 8Bit sind glaube ich noch ok. Wobei ich bei letzterem aber meine Zweifel habe ...

Quoted-Printable String Codieren

function quotedprintable_encode($input, $line_max = 76)
{ # Credits To: pob@medienrecht.org
 $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
 $lines = preg_split("/(?:\r\n|\r|\n)/", $input);
 $eol = "\r\n";
 $escape = "=";
 $output = "";

while( list(, $line) = each($lines) )
 {
  $line = rtrim($line); // remove trailing white space -> no =20\r\n necessary
  $linlen = strlen($line);
  $newline = "";
  for($i = 0; $i < $linlen; $i++)
  {
   $c = substr($line, $i, 1);
   $dec = ord($c);
   if(($dec == 32)&&($i == ($linlen - 1)))
   { // convert spaceat eol only
    $c = "=20"; }
   elseif(($dec == 61)||($dec < 32 )||($dec > 126))
   { //always encode "\t", which is *not* required
    $h2 = floor($dec/16); $h1 = floor($dec%16);
    $c = $escape.$hex["$h2"].$hex["$h1"]; }

if((strlen($newline)+strlen($c))>=$line_max)
   { // CRLF is not counted
    $output .= $newline.$escape.$eol; // soft line break; "=\r\n" is okay
    $newline = ""; }
   $newline .= $c;
  }
  $output .= $newline.$eol;
 }
 return trim($output);
}

Würde mich freuen, ein paar Anregungen zu bekommen von Leuten, die das auch schon mal gemacht haben.

Jep ... zu genüge, um nicht zu sagen: Bis zum Umfallen ;-)

Ciao,

Harry

--
  Man weiß erst was man hatte, wenn man es verloren hat.
  Intelligenz ist nicht zwingend etwas positives.