[Postfixbuch-users] Offtopic - Mail aus PHP mit Attachment senden

Markus Heinze max at freecards.de
Do Apr 17 13:31:48 CEST 2014


Moin moin

Am 2014-04-17 12:44, schrieb Christian Garling:
> Hallo Liste,
> 
> hat nicht direkt mit Postfix zu tun, vielleicht kann trotzdem jemand
> helfen. Meine Kollegen aus der Entwicklung haben Mailversand mit
> Attachment in eine unserer PHP Applikationen implementiert. Sie nutzen
> dafür folgenden Code:
> 
> $fileToAttach = 'test.zip';
> 
> $boundary = md5(date('r', time()));
> $fileSize = filesize($fileToAttach);
> $fd = fopen($fileToAttach, 'r');
> $fileContent = fread($fd, $fileSize);
> $content = chunk_split(base64_encode($fileContent));
> 
> $mailHeader  = 'Reply-To: '.$doNotReplyTo."\n";
> $mailHeader .= "MIME-Version: 1.0\r\n";
> $mailHeader .= 'Content-Type: multipart/mixed;
> boundary="'.$boundary.'"'."\r\n\r\n";
> $mailHeader .= 'Content-Type:text/plain; charset=UTF-8'."\r\n";
> $mailHeader .= 'Content-Transfer-Encoding: 7bit'."\r\n\r\n";
> $mailHeader .= '--'.$boundary."\r\n";
> $mailHeader .= 'Content-Type: application/octet-stream;
> name="'.$fileToAttach.'"'."\"\r\n";
> $mailHeader .= 'Content-Transfer-Encoding: base64'."\r\n";
> $mailHeader .= 'Content-Disposition: attachment;
> filename="'.$fileToAttach.'"'."\r\n\r\n";
> $mailHeader .= $content;
> $mailHeader .= '--'.$boundary."\r\n";
> 
> mail($toMail, $subject, $body, $mailHeader);
> 

Schaut Euch einfach mal die übergebenen Parameter an und dann in welcher 
Variable der Content ist, warum heissen die wohl header und body ...
Ausserdem werden Zeilen mit "\n" und nicht mit "\r\n" separiert 
ausserdem sollte jede Zeile nicht mehr als 70 Zeichen enthalten. 
Desweiteren ist UTF-8 mit 7Bit zu encoden sehr sportlich

Naja ich würd einfach mir ne MultipartMail entsprechend der Anforderung 
mit einem Standarmailclient an mich selbst senden, den Quellcode 
anschauen und danach header und body programmieren, wem das nicht liegt 
eine fertige Klasse aus dem Netz laden, fertig.


> Die daraus resultierende Mail beinhaltet das Attachment base64 codiert
> im Body der Mail, das Attachment ist so nicht verwendbar. Was machen
> die Jungs verkehrt?
> 
> Gruß, Christian



Mehr Informationen über die Mailingliste Postfixbuch-users