Mailen mit PHP via SMTP

balufreak

balufreak

Aktives Mitglied
Thread Starter
Dabei seit
12.10.2003
Beiträge
1.563
Reaktionspunkte
28
Hallo forum

Kann mir jemand sagen wie man mit php via smtp mailen kann?

greets balu
 
den befehl kenne ich schon...
der grund ist, ich möchte gerne den mailversand via php von meinem pb aus ermöglichen. Kann mir du mir eventuell sagen, wie ich php so einrichten kann, dass er über einen externen mailserver sendet?

greets balu
 
Findest du in der

PHP.ini

Zeile 590 - 598

[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from = me@localhost.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =



Dort kannst die gewünschten Angaben machen. Denk dran, danach den Apache neu zu starten.

Terminal:

sudo apachectl restart



Aber mal unter uns… was hast du vor? Spamming? Und denk dran, das einige SMTP mittlerweile Authenfizierung möchten.


Yves
 
es geht mir eigentlich nur darum, meine "projekte" zuerst zu testen, bevor ich sie ins internet stelle. Und den mailserver, den ich angeben möchte, ist sowieso "mir"...
also von dem her bringt spamming nicht viel *gG*
 
Na und warum lässt du dann nicht so wie es ist? Wie ich dir schon im ersten Post geschrieben habe (bzw. der Link es dir mitteilt), kann PHP das mit dem Apache doch auch lokal. Ein Apache auf deinem System @home macht nichts anderes als eine identische Konfiguration im Internet.

Du schickst einfach per Mailbefehl eine Email und diese wird ausgehend von deinem Rechner aus über PHP mittels sendmail versandt. Dazu musst du nicht erst einen externen Mailserver anquatschen, was sollen denn die Leute denken ;)


Probier es mal aus.

Liebe Grüße

Yves
 
aber wie empfange ich denn diese mails? bzw... kann ich dann auch an eine externe mailadresse mailen?
 
Wenn du nicht vorhast, einen eigenen Mailserver wie Xaroco, Raindrop etc zu konfigurieren :D, dann lass doch einfach so wie alles ist und tu so, als seist du auf einem externen Server.

Schicke die Emailadresse an wen du willst, zb an deine Standardemailadresse oder an sonst wen. Abfragen kann man Emails dann sehr gut mit Mail :D

Es läuft also alles ohne Einschränkungen, dein Apache schickt doch die Mail ins Internet!


Yves
 
ne das funktioniert eben nicht.... aber ich probiere es jetzt nocheinmal... melde mich dann wieder.. danke und greets balu
 
Ist zwar nur für MacOS X v10.3.x gedacht: http://www.apple.com/downloads/macosx/email_chat/postfixenabler.html

Ich verwende das und es funktioniert wunderbar. Auch zum testen von meiner Seite. Ich kann sogar über Outlook, Mail, Entourage oder was auch immer die Mails abrufen. Muß halt nur korrekt konfiguriert werden.

Zum testen nehm ich zwei Terminal Fenster her. Eins mit dem Befehl: tail -f /var/log/mail.log
Das andere mit dem Befehl: mail <name@email.netz>, dann den Betreff eingeben und Enter drücken, dann den Text und das ganze mit CTRL+D abschließen. Im tail-Fenster taucht wird jetzt etwas angezeigt. Da steht dann auch sowas wie, daß es gesendet wurde oder auch nicht. Dann kannst es ja umkonfigurieren. :)

Ich glaub das wurde hier aber auch schon mal besprochen.

sunni
 
Original geschrieben von balufreak
ne das funktioniert eben nicht.... aber ich probiere es jetzt nocheinmal... melde mich dann wieder.. danke und greets balu
&nbsp;


Dann wirst du was falsch gecodet haben, denke ich.

Ich habe das aktuelle X mit dem Standard-Apache und die aktuellste 4er von PHP installiert. Hier macht das keine Probleme.

Poste doch mal dein PHP Script.

Und vielleicht die entsprechenden Zeilen aus der PHP.ini.

Übergibst du alter Flasher vielleicht mit einem LoadVars Objekt in AS die Variablen? Oder nur reines PHP erstmal?

Yves
 
Also erstmal mache ich alles rein in php.. das flash drumrum kommt dann später dazu

also... der mailbefehl, funktioniert auf dem webserver im internet. der lautet wie folgt.

PHP:
if($_GET[contact]=="ok")
	{
		mail("ich@meinedomain.ch","Webmailer","$_POST[msg]","FROM: ".$_POST[mail]);
		if(mail==TRUE)
		{
			echo "<h1>E-Mail gesendet!</h1>
               }
        }

in der php.ini habe ich das hier
[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from = webmaster@meinedomain.ch

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

Und so sollte das funktionieren??

@sungeri:
Ich werde das tool mal ausprobieren.. mal schauen.. thx
 
Hehe,

mach mal das was du da in die PHP.ini eingetragen hast weg. Da steht doch dick und fett auskommentiert WIN32 ONLY drüber.

Wenn dein PHP Mailbefehl im Internet auf einem Server klappt dann wird er korrekt sein. Sieht auch syntaktisch korrekt aus.

Wenn du dann noch die PHP.ini wieder „normalisierst“ sollte es klappen.

Überprüfe mal mit dem Befehl:

echo phpinfo();

ob sendmail tatsächlich mitinstalliert wurde.

Yves
 
Ich kann nur jedem die PHP-Klasse PHPMailer weiterempfehlen.
Da spart man sich einiges an Zeit und kann sogar SMTP mit Authentifizierung nutzen.

Jibbets HIER

Gruß
 
So sollte er Dir aber eine Fehlermeldung ausgeben. Da Du in der if-Bedingung einfach nur
"mail" abfragst. PHP sollte das in diesem Fall für einen String halten und somit einen
Parse Error ausgeben.

Wenn Du überprüfen möchtest, ob die Funktion "mail" TRUE zurückgibt, musst Du das
wie folgt schreiben:

PHP:
$send = mail(...);

if ($send)
{
    ...
}

Dann führt er nämlich die Funktion "mail" erst aus, wenn er die if-Bedingung abfragt und
kann so feststellen ob es erfolgreich war oder eben nicht.
 
also im log kommt folgende fehlermeldung:

Apr 22 21:45:31 localhost postfix/pickup[1378]: 6458B76416: uid=70 from=<www>
Apr 22 21:45:31 localhost postfix/cleanup[1379]: 6458B76416: message-id=<20040422194531.6458B76416@xxx.local>
Apr 22 21:45:31 localhost postfix/qmgr[1342]: 6458B76416: from=<www@xxxx.local>, size=339, nrcpt=1 (queue active)
Apr 22 21:45:34 localhost postfix/smtp[1380]: 6458B76416: to=<xxx@xxxxy.com>, relay=katun.ch[217.26.52.26], delay=3, status=bounced (host katun.ch[217.26.52.26] said: 550-Verification failed for <www@xxxx.local> 550-unrouteable mail domain "xxx.local" 550 Sender verify failed (in reply to RCPT TO command))
Apr 22 21:45:34 localhost postfix/cleanup[1379]: 965C076419: message-id=<20040422194534.965C076419@xxx.local>
Apr 22 21:45:34 localhost postfix/qmgr[1342]: 965C076419: from=<>, size=2437, nrcpt=1 (queue active)
Apr 22 21:45:34 localhost postfix/local[1382]: 965C076419: to=<yyy@xxxx.local>, orig_to=<www@xxxx.local>, relay=local, delay=0, status=bounced (unknown user: "yyy")

also den zielhost hat er ja gefunden. soweit kann ich das auslesen
 
Zuletzt bearbeitet:
550-Verification failed for <www@Silas-Knobels-Computer.local> 550-unrouteable mail domain "silas-knobels-computer.local" 550 Sender verify failed (in reply to RCPT TO command))

Steht ja da. Der kann den Domainnamen nicht auflösen, von dem du schickst. Und damit eine Fehlermeldung auch wirklich ankommt, muß er das vorher tun. Ich hab einfach meinen Domainnamen eingetragen. Mach das doch auch und probiers aus.
 
öhm.. blöde frage... wo kann ich den ändern? in der Systemsteuerung kann ich das .local nicht löschen
 
Vergesst meinen Post mal eben, hatte da einen kleinen Denkfehler! Aber habt ihr ja eh
nicht beachtet.
hmpf.gif
 
Zurück
Oben Unten