mail()

  • Themenstarter Themenstarter GibKingXXL
  • Beginndatum Beginndatum
G

GibKingXXL

Hi Leutz,
Ich will einen form-mailer baun der auch anhänge versenden kann.
jetz hab ich mich da eingelesen und sogar extra ne eigene klasse geschrieben, mit der ich die nötige MIME-email erstellen kann.
die anhänge werden base64 codiert und mit chunk_split() so aufgeteils wies sein soll.
jetz kann ich kleine anhänge verschicken (bis ca 3kb)

mein einziges problem das ich hab ist dass ich keine grösseren anhänge versenden kann und ich weiss nicht wiso.

kann es sein dass der string den ich an die mail() funktion übergeben muss zu gross ist?

ich mein ich kanns mir zwar nicht vorstellen aber ich find einfach keine andere erklärung dafür.

Hoffe einer weiss mir zu helfen.
THX im vorraus
 
jo so ähnlich hab ichs auch
die "header" die generiert werden sehen folgendermasen aus:

From: GibKingXXL
Content-type: multipart/mixed;
boundary = "_Next_Part_1028825208_11862_"

This is a MIME encoded message.

--_Next_Part_1028825208_11862_
Content-type: text/plain
Content-Transfer_encoding: 7bit

Dies ist ein schöner text

--_Next_Part_1028825208_11862_
--Content-type: text/plain;
name="=?iso-8859-1?Q?testdatei.txt?>"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="=?iso-8859-1?Q?testdatei.txt?="

HXJHKDDKHKJC.......

--_Next_Part_1028825208_11862_--

das ganze kommt inne var $content

und dann mach ich:
mail($recipient,$subject,'',$content);

funktioniert bei kleinen dateien wunderbar.
nur bei grösseren datein ( ca ab 4kb) mahts probleme, weil er die mail() nich erfolgreich ausführen kann.

kann das sein, dass das am provieder liegr??
des script liegt bei puretec aufm server.
 
ich glaube, der Provider kann da was begrenzen Größenmässig ... aber dann müsstest Du auch bei "normalen" Emails Probleme haben, wenn Du da ne größere verschickst, denke ich mal.

ansonsten bin ich erstmal überfragt :(


Dunsti
 
Denke eher dasses die Servertime is.
Bei den meisten Servern dürfen PHP Skripte maximal 30 Sekunden laufen , wenn Du ne kleine Bandbreite hast ( ISDN ) kriegst Du in 30 Sekunden nur 250KB oder so hochgeladen ... mit DSL knapp 500 usw , danach wird abgebrochen und da das Senden noch nich vollständig war kommt bullshit an.
Probier mal set_time_limit();

bringt er nen Error zurück dass der Server im Safe Mode läuft hast Du gelitten , denn dann kannst Du es nicht ändern , ansonsten kannst Du damit die Laufzeit Deiner PHP Skripte ändern wie Du willst.
siehe dazu http://www.php.net
 
also ich hab die lösung selbst gefunden.

die grösse des buffers der mailfunktion ist standardmässig nur 4kb gross, wenn man das ändern will muss man das in den sources tun und dann PHP neu compilieren, was halt nicht geht wenns nich der eigene server ist.
Ich hab Purtec bescheid gesagt (da liegen meine seiten) und die ham gesagt dass sies beim nächsten php update berücksichtigen und den buffer vergrössern.

Trotzdem danke für eure gutgemeinten tips.

@CitGod:
daran kanns meiner meinung nach gar net liegen dar ich beim forular mit der POST methode arbeite. da wird die datei zusammen mit der anfrage im http-header zum server geschickt, lange bevor ein php script aufgerufen wird. php greift dann auf die detei zu die beim server im /tmp verzeichnis liegt

Trotzdem nochmal danke
---
GibKingXXL
 
ahso dachte Du hast alles in einer PHP Datei ...
Das hab ich nämlich mal gemacht und hab mich gewundert wieso nich gerade viel ankommt ;)
 
Zurück