PHP mail() Befehl Dauer

NovoTec

Registered User
Hallo,

ich habe einen kleinen Newsletter geschrieben der mit PHP mail() arbeitet. Auf dem alten Server bei df() ging der Versand ruck zuck. Auf dem neuen Server (aktuelles Plesk, PHP5) dauert die Ausführungszeit des reinen Mail Befehls etwa +/- 1.5 Sekunden, auch wenn nur ein kleiner Text versand wird. In einer Schleife kommen bei 40 Mails etwa 60 Sekunden zusammen. Muss ich noch was konfigurieren? PHP.ini oder so?

THX
 
Wo siehst Du das mit den 1.5 Sekunden? In der /var/log/mail.info?

Mit der php.ini sollte das nix zu tun haben, da dort auch nur der Pfad zum sendmail Alias als MTA konfiguriert wird. Vielleicht ein Konfigurationsdetail des installierten Mailsystems (Postfix, Exim etc.?), um Massenemails präventiv vorzubeugen? Oder mit Deinem PHP-Skript stimmt was nicht.

Vielleicht mal ein paar Codeausschnitte posten?
 
Muss ich noch was konfigurieren? PHP.ini oder so?
Kommt drauf an, ob PHP per Sendmail oder per SMTP einliefert.
Per Sendmail geht es i.d.R. ruckizucki. Bei SMTP muß erst die Connection aufgebaut werden.
Dazu kommt immer die Frage, in wie fern der MTA gerade schon belastet ist.

huschi.
 
Nachdem das Script so lange gedauert hat, habe ich nur

Code:
Schleife mit $i bis 10
mail(an mich)

getestet und die Zeit innerhalb php gemessen. Wo sieht man denn wie PHP sendet? Also ob sendmail oder SMTP. PHPInfo?

Auf dem neuen Server haben wir alle Rechte. Den hat auch ein Herr Huschauer eingerichtet.... :)
 
In der PHP.ini finde ich beides:

Code:
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
SMTP localhost localhost
Im Maillog sieht man den Abstand von etwa einer 3/4 Sekunde bis Sekunde:

Code:
Oct 14 20:37:43 h1409138 qmail: 1224009463.857182 new msg 20612377
Oct 14 20:37:43 h1409138 qmail: 1224009463.857227 info msg 20612377: bytes 2111 from <drweb-daemon@xxx> qp 12510 uid 2021
Oct 14 20:37:44 h1409138 qmail-remote-handlers[12518]: from=anonymous@xxx
Oct 14 20:37:44 h1409138 qmail-remote-handlers[12518]: to=xxx@web.de
Oct 14 20:37:44 h1409138 qmail-queue-handlers[12515]: starter: submitter[12519] exited normally
Oct 14 20:37:44 h1409138 qmail-local-handlers[12521]: Handlers Filter before-local for qmail started ...
Oct 14 20:37:44 h1409138 qmail: 1224009464.202011 starting delivery 17532: msg 20612377 to local root@xxx
Oct 14 20:37:44 h1409138 qmail: 1224009464.202084 status: local 1/10 remote 1/20
Oct 14 20:37:44 h1409138 qmail: 1224009464.202125 new msg 20612369
Oct 14 20:37:44 h1409138 qmail: 1224009464.202168 info msg 20612369: bytes 922 from <anonymous@xxx> qp 12519 uid 30
Oct 14 20:37:44 h1409138 qmail-local-handlers[12521]: from=drweb-daemon@xxx
Oct 14 20:37:44 h1409138 qmail-local-handlers[12521]: to=root@xxx
Oct 14 20:37:44 h1409138 qmail-queue[12524]: mail: all addreses are uncheckable - need to skip scanning (by deny mode)
Oct 14 20:37:44 h1409138 qmail-queue[12524]: scan: the message(drweb.tmp.KNrX07) sent by anonymous@xxx to xxx should be passed without checks, because contains uncheckable addresses
Oct 14 20:37:44 h1409138 qmail-queue-handlers[12526]: Handlers Filter before-queue for qmail started ...
Oct 14 20:37:44 h1409138 qmail-remote-handlers[12528]: Handlers Filter before-remote for qmail started ...
Oct 14 20:37:44 h1409138 qmail: 1224009464.678595 starting delivery 17533: msg 20612369 to remote xxx
Oct 14 20:37:44 h1409138 qmail: 1224009464.682004 status: local 1/10 remote 2/20
Oct 14 20:37:44 h1409138 qmail: 1224009464.682225 delivery 17531: success: 217.72.192.149_accepted_message./Remote_host_said:_250_OK_id=1Kpom8-0004vT-00/
Oct 14 20:37:45 h1409138 qmail: 1224009464.682382 status: local 1/10 remote 1/20
Oct 14 20:37:45 h1409138 qmail: 1224009464.682532 end msg 20612373

Wo kann ich ansetzen?

UweS.
 
[subjektiv modus="arg"]
ca. 90000 Mails pro Tag reicht dir nicht?

Ich finde den Sekunden Takt ganz praktisch. Oft laufen DB, HTTP und Mail Server auf einer Kiste. Und so hat dann der Mailserver weniger Einfluß auf die Performance der anderen Server Prozesse.
[/subjektiv]

Es gibt ja auch noch BCC...
 
Ich denke, das Problem ist wohl, daß das Script vorzeitig beendet wird, bevor alle Mails verschickt worden sind. Oder?
Es ist zwar leicht eigenartig, daß er wirklich 1 Sekunde pro Mail braucht, aber es ist ja nicht so, daß es nicht übliche Workarounds gibt:
Das Script wird auf 15-20 Mails programmiert und ruft sich dann per META-Tag oder JavaScript erneut auf.
So sieht der User vor dem Rechner auch ca. welche Menge bereits abgearbeitet wurde.

huschi.
 
Back
Top