Re: PHP und SMTP
am 09.11.2006 13:08:21 von dev-null-use-reply-adress
Irgendwer -oder was (mchoermann) schrieb:
> ich verschicke über PHP-Skript Mails mit Anhang raus. Aber leider
> macht der Mailserver irgend etwas falsch. Er schreibt in meinen Base64
> Code 5 Zeilen rein und zerstört damit mein File.
[..]
> $header .="Content-Type: application/octet-stream;
> name=\"$dateiname\"\n";
> $header .="Content-Transfer-Encoding: base64\n";
> $header .="Content-Disposition: attachment;
> filename=\"$dateiname\"\n";
> $header .= "$data_content\n";
Der Code lässt vermuten, daß Du den Anhang in den Mailheader
schreibst, was falsch ist - er gehört in den body.
Verwende doch einfach eine der vielen Mailklassen dafür.
http://phpmailer.sourceforge.net/
http://pear.php.net/manual/en/package.mail.mail-mime.php
Das ist einfacher und weniger Fehler anfällig.
Gruß
JPM
Re: PHP und SMTP
am 09.11.2006 15:34:23 von Claus Reibenstein
Jens Peter Moeller schrieb:
> Irgendwer -oder was (mchoermann) schrieb:
Hättest Du ihn nicht zitiert, hätte ich ihn gar nicht mitbekommen.
> Der Code lässt vermuten, daß Du den Anhang in den Mailheader
> schreibst, was falsch ist - er gehört in den body.
Alle Lösungen zu diesem Thema, die ich im Web gefunden habe, codieren
Mailtext und Attachment komplett in den Header und lassen den Body leer.
So habe ich es auch auf unseren Webseiten gemacht, und es funktioniert
problemlos. So falsch kann es also nicht sein. Bestenfall unorthodox.
Wie macht man es denn richtig? Wie packt man ein Attachment korrekt in
den Body? Bitte erleuchte uns.
> Verwende doch einfach eine der vielen Mailklassen dafür.
Ich verwende die normale mail()-Funktion. OO liegt mir nicht.
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Re: PHP und SMTP
am 09.11.2006 15:46:27 von dev-null-use-reply-adress
Claus Reibenstein schrieb:
> Jens Peter Moeller schrieb:
>> Der Code lässt vermuten, daß Du den Anhang in den Mailheader
>> schreibst, was falsch ist - er gehört in den body.
>
> Alle Lösungen zu diesem Thema, die ich im Web gefunden habe, codieren
> Mailtext und Attachment komplett in den Header und lassen den Body leer.
> So habe ich es auch auf unseren Webseiten gemacht, und es funktioniert
> problemlos. So falsch kann es also nicht sein. Bestenfall unorthodox.
Nunja, man müsste jetzt mal in den Quellcode von mail() schauen,
wie body und header an die Mailer im System übergeben werden.
Falls einfach so hintereinander und Du setzt richtige Umbrüche
an den richtigen Stellen, düfte es wohl klappen.
Ich finde es aber trotzdem nicht ganz sauber, mindestens aber
unlogisch oder verwirrend.
> Wie macht man es denn richtig? Wie packt man ein Attachment korrekt in
> den Body? Bitte erleuchte uns.
Och nö, die Frage war jetzt nicht ernst gemeint. Oder?
>> Verwende doch einfach eine der vielen Mailklassen dafür.
>
> Ich verwende die normale mail()-Funktion. OO liegt mir nicht.
Mir auch nicht unbedingt. Aber man hat es damit doch viel leichter.
Man muß sich z.B. keine Gedanken über viele verschiedene Multipart
Typen machen - Nur HTML, HTML und Text, mit oder ohne Anhang, mit
Inline-Bildern, usw. Man übergibt einfach die ensprechenden Dinge
an das Objekt und hinten kommt eine korrekte Mail heraus.
Gruß
JPM
Re: PHP und SMTP
am 09.11.2006 15:55:56 von Claus Reibenstein
Jens Peter Moeller schrieb:
> Claus Reibenstein schrieb:
>
>> Alle Lösungen zu diesem Thema, die ich im Web gefunden habe, codieren
>> Mailtext und Attachment komplett in den Header und lassen den Body leer.
>> [...]
>> Wie macht man es denn richtig? Wie packt man ein Attachment korrekt in
>> den Body? Bitte erleuchte uns.
>
> Och nö, die Frage war jetzt nicht ernst gemeint. Oder?
Doch, war sie. Wie ich oben ja schon schrieb, habe ich bisher keine
derartige Lösung gefunden.
>> Ich verwende die normale mail()-Funktion. OO liegt mir nicht.
>
> Mir auch nicht unbedingt. Aber man hat es damit doch viel leichter.
> Man muß sich z.B. keine Gedanken über viele verschiedene Multipart
> Typen machen - Nur HTML, HTML und Text, mit oder ohne Anhang, mit
> Inline-Bildern, usw. Man übergibt einfach die ensprechenden Dinge
> an das Objekt und hinten kommt eine korrekte Mail heraus.
Ich werd's mir mal anschauen.
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Re: PHP und SMTP
am 09.11.2006 17:21:29 von mchoermann
Jens Peter Moeller schrieb:
> Irgendwer -oder was (mchoermann) schrieb:
>
> > ich verschicke über PHP-Skript Mails mit Anhang raus. Aber leider
> > macht der Mailserver irgend etwas falsch. Er schreibt in meinen Base64
> > Code 5 Zeilen rein und zerstört damit mein File.
>
> [..]
> > $header .=3D"Content-Type: application/octet-stream;
> > name=3D\"$dateiname\"\n";
> > $header .=3D"Content-Transfer-Encoding: base64\n";
> > $header .=3D"Content-Disposition: attachment;
> > filename=3D\"$dateiname\"\n";
> > $header .=3D "$data_content\n";
>
> Der Code lässt vermuten, daß Du den Anhang in den Mailheader
> schreibst, was falsch ist - er gehört in den body.
>
> Verwende doch einfach eine der vielen Mailklassen dafür.
Die mail() Funktion geht nicht - aufjedenfall nicht mit Anhängen die
grösser sind als 800KB :( darum dieser Weg.
>
> http://phpmailer.sourceforge.net/
> http://pear.php.net/manual/en/package.mail.mail-mime.php
>
> Das ist einfacher und weniger Fehler anfällig.
:( geht ja nicht. Der Server auf dem das Script läuft ist eine
Windowsmaschine. Also keine sendmail.
>=20
>=20
> Gruß
> JPM
Re: PHP und SMTP
am 09.11.2006 17:26:52 von mchoermann
>
> Der Code lässt vermuten, daß Du den Anhang in den Mailheader
> schreibst, was falsch ist - er gehört in den body.
>=20
Laut Doku kommten die Anhänge in den Header.
Re: PHP und SMTP
am 09.11.2006 18:18:24 von Carsten Wiedmann
mchoermann schrieb:
> > > $header .="Content-Type: application/octet-stream;
> > > name=\"$dateiname\"\n";
> > > $header .="Content-Transfer-Encoding: base64\n";
> > > $header .="Content-Disposition: attachment;
> > > filename=\"$dateiname\"\n";
> > > $header .= "$data_content\n";
>
> Die mail() Funktion geht nicht - aufjedenfall nicht mit Anhängen die
> grösser sind als 800KB :( darum dieser Weg.
Du schreibst, dass du diesen Weg nimmst und nicht die Mail-Funktion von PHP.
Aber du nimmst doch im Moment die Mailfunktion von PHP? Oder mit was
versendest du dann sonst im Moment was in $header usw. drin steht?
BTW: von dieser Einschränkung (800kb) wusste ich bisher noch nichts. Wo kann
man das nachlesen?
> > http://pear.php.net/manual/en/package.mail.mail-mime.php
>
> :( geht ja nicht. Der Server auf dem das Script läuft ist eine
> Windowsmaschine. Also keine sendmail.
a) Funktioniert diese Klasse auch ohne Sendmail (gerade das ist ja u.a. ein
Vorteil dieser Mailklasse).
b) Warum sollte es auf Windows kein "sendmail" geben? (Gehört jedenfalls zu
den Mailservers die ich unter Windows betreibe genauso dazu, wie zu den
Mailservern die es für *nix gibt).
Gruß
Carsten
Re: PHP und SMTP
am 09.11.2006 20:47:50 von mchoermann
> a) Funktioniert diese Klasse auch ohne Sendmail (gerade das ist ja u.a. e=
in
> Vorteil dieser Mailklasse).
> b) Warum sollte es auf Windows kein "sendmail" geben? (Gehört jedenfall=
s zu
> den Mailservers die ich unter Windows betreibe genauso dazu, wie zu den
> Mailservern die es für *nix gibt).
>
Ok muss man nachschauen, ob sendmail auf dem Server ist. Lauf Info vo
der Administration ist es nicht der Fall - aber u.U. :) - mal schauen
wäre sicher schneller und leichter.
Zur Zeit gehe ich direkt mit PHP auf den SMTP Server. Also mache alles
manuell. Halo senden, From - RCTP TO - Date - Header - Body - . - Quit.
So wie is in der PHP Doku steht.=20
cu
Thomas
Re: PHP und SMTP
am 09.11.2006 21:06:03 von mchoermann
> Das alles nun passend auf Variablen für den 3. und 4. Parameter von
> mail() zu verteilen sollte doch kein Problem sein.
In der Regel ist das ja auch kein Problem. Aber leider hab ich irgend
wie eine Begrenzung auf dem Server und daher muß ich einen andern Weg
gehen.
mail() ist wunder schön. Keine Frage man braucht sich um den Header
und die Kommunikation zwischen Script und SMTP Server sich nicht
kümmern. Aber leider bricht mein Server nach einiger Zeit ab und sagt
daß das CGI - Script nicht in Ordnung sei oder der Server nicht mehr
da sei. Aber in Wirklichkeit wird der Anhang abgelehnt weil er zu
gross ist. Und aus Sicherheitsgrunden wird die Grösse nicht geändert.
Denke langsam, daß ich der einzige auf diesem Server bin der was über
Script und Anhängen verschicken will.
cu
Thomas
Re: PHP und SMTP
am 09.11.2006 21:08:13 von mchoermann
>
> Wie macht man es denn richtig? Wie packt man ein Attachment korrekt in
> den Body? Bitte erleuchte uns.
>
> > Verwende doch einfach eine der vielen Mailklassen dafür.
>
> Ich verwende die normale mail()-Funktion. OO liegt mir nicht.
Hast Du ein Beispiel wie man die Anhänge in den Body baut????
Mail-Kassen benütze ich auch gerne :)
cu Thomas
Re: PHP und SMTP
am 09.11.2006 21:43:29 von Carsten Wiedmann
mchoermann schrieb:
> Aber leider hab ich irgend
> wie eine Begrenzung auf dem Server und daher muß ich einen andern Weg
> gehen.
>
> Aber in Wirklichkeit wird der Anhang abgelehnt weil er zu
> gross ist.
Was jetzt, hast du "irgendwie" eine Begrenzung, oder nimmt der Server
devinitiv keine Mails ab einer bestimmten Grösse an? Im Falle, dass der
Mail-Server eine Grössenbeschränkung hat, hast du genau eine Möglichkeit: Du
musst einen anderen Mails-Server zum Versenden benutzen. (oder halt kleinere
Mails verschicken).
Gruß
Carsten
Re: PHP und SMTP
am 10.11.2006 08:47:13 von mchoermann
Carsten Wiedmann schrieb:
> Was jetzt, hast du "irgendwie" eine Begrenzung, oder nimmt der Server
> devinitiv keine Mails ab einer bestimmten Grösse an? Im Falle, dass der
> Mail-Server eine Grössenbeschränkung hat, hast du genau eine Möglic=
hkeit: Du
> musst einen anderen Mails-Server zum Versenden benutzen. (oder halt klein=
ere
> Mails verschicken).
Also die Begrenzung ist besteht nur bei mail(). Wenn ich direkt auf den
SMTP-Server gehen hab ich zwar auch meine Begrenzungen aber die sind
nicht so niedrig (8MB für die Mail und ca 16 MB für die Mailsitzung)
wie bei mail().
Das mit einen anderen Mail-Server muss ich mal nachfragen ob ich
überhaupt auf einen anderen dort im Netzt gehen kann bzw. gehen darf.
Nicht das es wegen Sicherheit und so alles wieder geblockt wird.
Gruß
Thomas
Re: PHP und SMTP
am 10.11.2006 09:45:56 von dev-null-use-reply-adress
Irgendwer -oder was schrieb:
>> a) Funktioniert diese Klasse auch ohne Sendmail (gerade das ist ja u.a. ein
>> Vorteil dieser Mailklasse).
>> b) Warum sollte es auf Windows kein "sendmail" geben? (Gehört jedenfalls zu
>> den Mailservers die ich unter Windows betreibe genauso dazu, wie zu den
>> Mailservern die es für *nix gibt).
>
> Ok muss man nachschauen, ob sendmail auf dem Server ist.
Muss nich
> Zur Zeit gehe ich direkt mit PHP auf den SMTP Server. Also mache alles
> manuell. Halo senden, From - RCTP TO - Date - Header - Body - . - Quit.
Das können diese Mail-Klassen alles auch.
Gruß
JPM
Re: PHP und SMTP
am 10.11.2006 09:46:50 von dev-null-use-reply-adress
Irgendwer -oder was schrieb:
>> Der Code lässt vermuten, daß Du den Anhang in den Mailheader
>> schreibst, was falsch ist - er gehört in den body.
>
> Laut Doku kommten die Anhänge in den Header.
In welcher Doku und wo genau soll das stehen?
Gruß
JPM
Re: PHP und SMTP
am 10.11.2006 10:15:37 von mchoermann
Jens Peter Moeller schrieb:
>
> In welcher Doku und wo genau soll das stehen?
http://www.php4-forum.de/mime_mail.htm
Gruss
Thomas
Re: PHP und SMTP
am 10.11.2006 10:40:35 von Claus Reibenstein
Jens Peter Moeller schrieb:
> Claus Reibenstein schrieb:
>
>> Jens Peter Moeller schrieb:
>>
>>> Claus Reibenstein schrieb:
>>>
>>>> Wie macht man es denn richtig? Wie packt man ein Attachment korrekt in
>>>> den Body? Bitte erleuchte uns.
>
> Also Header und Body [...]
>
> [ausführliche Erklärung gesnipt]
Danke für die Info. Damit sollte es auch für mich eigentlich kein
Problem mehr sein, das umzustellen. Werde ich gleich mal ausprobieren.
> Das alles nun passend auf Variablen für den 3. und 4. Parameter von
> mail() zu verteilen sollte doch kein Problem sein.
Jetzt nicht mehr :-)
Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /
Re: PHP und SMTP
am 10.11.2006 10:58:51 von dev-null-use-reply-adress
Irgendwer oder -was schrieb:
> Jens Peter Moeller schrieb:
>>
>> In welcher Doku und wo genau soll das stehen?
>
> http://www.php4-forum.de/mime_mail.htm
Das ist natürlich keine Doku, allenfalls ein Tutorial.
Und was der da im zweiten Absatz schreibt, ist totaler Unfug.
Ich frage mich, wie er darauf gekommen ist.
Etwas später kommt dann ja auch:
"Jetzt kann nach einer Leerzeile (\n\n)"
Also bitte, damit wird der Header doch beendet. Warum denkt
er nun, man könne das folgende nicht gleich in den body schreiben?
Gruß
JPM
Re: PHP und SMTP
am 10.11.2006 15:25:48 von mchoermann
Ich teste gerade das class.phpmailer.php - aber irgend wie kann ich nur
immer ein Mail abschicken. Wenn ich die Funktion ein zweitesmal aufrufe
bleibt das Script stehen. Ist doch sicher nicht normal oder?
Gruss
Thomas
Re: PHP und SMTP
am 13.11.2006 17:33:51 von Ulf Kadner
mchoermann schrieb:
> Ich teste gerade das class.phpmailer.php - aber irgend wie kann ich nur
> immer ein Mail abschicken. Wenn ich die Funktion ein zweitesmal aufrufe
Ich denk Du testest ne Klasse? Die hat keine Funktionen, bzw. nennt man
diese dort Methoden. (OOP-Geschwätz ;-) )
> bleibt das Script stehen. Ist doch sicher nicht normal oder?
Doch! Genau dafür wurde die entwickelt. Oder wolltest Du anderes hören?
MfG, Ulf
Re: PHP und SMTP
am 14.11.2006 09:52:37 von mchoermann
Ulf Kadner schrieb:
>
> Ich denk Du testest ne Klasse? Die hat keine Funktionen, bzw. nennt man
> diese dort Methoden. (OOP-Geschwätz ;-) )
>
> Doch! Genau dafür wurde die entwickelt. Oder wolltest Du anderes höre=
n?
Ja ich teste sie gerade. Aber normalerweise müß sie doch sich mehr
mals hinter ein anderer ausführen lassen und doch nicht beim zweitern
mal nichts mehr machen.
Gruß
Thomas
Re: PHP und SMTP
am 14.11.2006 13:05:48 von Ulf Kadner
mchoermann schrieb:
> Ulf Kadner schrieb:
Schau mal! Ich verrate Dir wie ich heisse. Du tust selbiges nicht. Warum
bis Du so unfreundlich? Wenn Du Hilfe willst wäre es nett wenn nicht nur
wir Dir entgegenkommen sondern auch Du uns.
Alle hier helfen gerne, aber ich denke kaum einer hier (ausser nen paar
Spezis) wird verstehen warum Du hinweise darauf so konsequent ignorierst.
Danke für Dein Verständnis.
MfG, Ulf