mail() wie nutze ich das?

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

mail() wie nutze ich das?

Postby romi » 12. November 2004 09:01

hallo liebe forengemeinde,

auch wenn dieses thema hier schon hundertfach durchgekaut wurde, habe ich konkrete infos auf meine frage bisher noch nicht gefunden.

ich bearbeite gerade ein script für das es unerläßlich ist via mail() informationen abzusetzen. geht das überhaupt irgendwie mit xampp-w?

wenn ja, wie?

bisherige versuche endeten mit folgendem fehler:
Warning: mail() [function.mail]: SMTP server response: 553 We do not relay non-local mail, sorry. in D:\xampp\htdocs\faktura\register.php on line 94

wäre schön, wenn mal jemand aufklärung für dummies leisten könnte :roll:

liebe grüße
eure romi :twisted:
dumm ist der, der nicht fragt :)
romi
 
Posts: 14
Joined: 11. November 2004 08:42

Postby romi » 13. November 2004 07:26

kann mir denn keiner helfen? :roll:

ich denke dieses thema sollte dringendst mal ordentlich behandelt und ggf. in die FAQ aufgenommen werden. die hohe view-zahl dieses postings gibt mir doch recht, oder?
dumm ist der, der nicht fragt :)
romi
 
Posts: 14
Joined: 11. November 2004 08:42

Postby ollo » 13. November 2004 11:59

Ich bin da jetzt auch kein Experte aber ich versuchs mal... :?

Wie man mail() benutzt: ich denke am besten gar nicht wenn man nicht sicher ist was man tut.

AFAIK setzt mail() eine mail vom Server ab, also versucht lokal via sendmail (oder so?) eine Mail zu verschicken. Ich nehme aber mal an dass nicht jeder Rechner eine 'Lizenz' zum verschicken hat, denn ansonsten bräuchte man ja auch keine Konten im Outlook zu erstellen, sondern könnte seine eigenen Mails auch einfach vom eigenen Rechner durchs Internet jagen lassen. Zumindest dürften dann andere Rechner meckern, würden sie das nicht tun, wäre das der 7. Himmel für Spammer.
Es gibt zwar wohl auch offene Mail-Relays, über die dann auch meist Spam versandt wird, aber ich nehme an, dass diese dann ihre 'Lizenz' nutzen, um die Mails offiziell zu machen.
Echte Server im Netz, also dein Webspace vom Provider, haben i.d.R. eine 'Lizenz', sofern sie auch eine Domäne haben. Daher kann man auch Mails von z.B. ich.selbst@mein.webspace verschicken. Aber dein Testrechner daheim (wird wohl dein Windows-Rechner sein, da 'D:\...') kann das nicht.

Mein Tipp: nutze die Mail-Klasse aus dem PEAR (http://pear.php.net), bei der kann man u.A. einen SMTP-Server angeben, wie bei den Kontoeinstellungen daheim. Das ist flexibler, weil man auf diese Weise einen beliebigen Account nutzen kann, der nicht notwendigerweise auf dem gleichen Server liegt.

Sollte an dieser Darstellung was falsch sein, möge man mich berichtigen, ich lerne da gerne was dazu. :wink:
ollo
 
Posts: 85
Joined: 11. November 2004 12:29

Postby -daniel- » 13. November 2004 13:08

@ollo

du brauchst keine Lizens um eMails zu versenden, sondern nur einem Mail-Server lokal zu instalieren.
-daniel-
 
Posts: 4
Joined: 19. July 2004 16:36

Postby romi » 13. November 2004 22:51

ja @ollo,

ich denke du schreibst quatsch. lizenzen zum versenden von mail gibt es nicht. jeder der sich einen mailserver installiert, hat eine solche lizenz, wenn man das so nennen darf. nur leider kenne ich mich in den technischen details nicht so gut aus um einen solchen zu installieren bzw. einzurichten. anderenfalls würde ich hier kaum posten oder???

der absolute brüller allerdings ist:
Wie man mail() benutzt: ich denke am besten gar nicht wenn man nicht sicher ist was man tut.


... ohne worte.

gibt es evtl noch leute hier, die wissen wovon ich rede und sich in der materie etwas auskennen?
dumm ist der, der nicht fragt :)
romi
 
Posts: 14
Joined: 11. November 2004 08:42

Postby PF4 » 13. November 2004 22:59

PF4
 
Posts: 528
Joined: 10. March 2003 09:15

Re: mail() wie nutze ich das?

Postby raik » 14. November 2004 00:21

romi wrote:... endeten mit folgendem fehler:
Warning: mail() [function.mail]: SMTP server response: 553 We do not relay non-local mail, sorry. in D:\xampp\htdocs\faktura\register.php on line 94

was ist daran nicht zu verstehen? das ist kein fehler der mail-funktion, sondern eine antwort ("response") des von dir benutzten mailservers.
und wenn du etwas englisch kannst, verstehst du, dass der server keine, ("non-local") nicht-lokalen mails ("relay") weiterleitet. d.h., der server leitet nur mails weiter, die von einer software/script erzeugt wurden, die auch auf ihm läuft.

ich nehme an, du versuchst das von daheim? du hast vermutlich eine dyn. ip. mails von solchen adressen werden von kaum einem server weitergeleitet, weil die spammer sonst ihren spamserver selber zu hause aufsetzen könnten.

lass das script auf dem server des providers laufen, dessen mailserver dir zur verfügung gestellt wurde, dann sollte es auch funktionieren.
raik
 
Posts: 21
Joined: 17. February 2003 03:17

Postby romi » 14. November 2004 10:06

mir geht es nicht darum irgendjemandem mails zu senden. zu testzwecken möchte ich lediglich die mailfunktion in den griff bekommen. der einzige, der dabei mails bekommt, bin ich selber.

... weil die spammer sonst ihren spamserver selber zu hause aufsetzen könnten.

tun sie das nicht auch :cry:

lass das script auf dem server des providers laufen, dessen mailserver dir zur verfügung gestellt wurde, dann sollte es auch funktionieren.

laufen soll es nach fertigstellung auch dort. nur wenn ich es local coden möchte, es aber nicht in vollem umfang funktioniert, ich es widerum auf einem server testen muss, wozu brauch man dann xampp?
dumm ist der, der nicht fragt :)
romi
 
Posts: 14
Joined: 11. November 2004 08:42

Postby romi » 14. November 2004 10:55

dumm ist der, der nicht fragt :)
romi
 
Posts: 14
Joined: 11. November 2004 08:42

Postby ollo » 14. November 2004 13:23

Tja, das mit den 'Lizenzen' bzw. einer Registrierung o.ä. hat mir mal jemand so verklickert, der davon angeblich Ahnung hat. :?

Ist ist ja auch irgendwo logisch, dass nicht jeder einfach Mails versenden kann. Stimmt zwar nicht, er kann es, aber wie schon geschrieben wurde kommen sie halt nicht an, weil ein Server sich weigert sie zu empfangen/weiterzuleiten. Also ist die 'Lizenz' in diesem Fall eine feste IP von einem Rechner, der nicht auf den Blacklists geführt ist und somit allgemein als vertrauenswürdiges Mail-Relay akzeptiert ist ...

Sorry für die Verwirrung, aber der Grundegedanke meines Posts und mein Tipp bleiben bestehen:
Nimm die Mail-Klasse aus dem PEAR und gib' einen SMTP an, dann hast Du keine Probleme damit, WO deine Scripts laufen.

mir geht es nicht darum irgendjemandem mails zu senden. zu testzwecken möchte ich lediglich die mailfunktion in den griff bekommen. der einzige, der dabei mails bekommt, bin ich selber.


Nur wird dein Hoster das wahrscheinlich nicht wissen und die Mail, die du von lokal verschickt hast, als Spam wieder ausfiltern.
Aber bevor ich mich wieder auf dünnes Eis begebe, probier's halt selber aus... :D

Achja, was ich noch sagen wollte:
Ich versuche meist zu helfen, auch wenn ich nicht immer die perfekte Ahnung habe und direkt die Musterlösung liefern kann. Wenn ich also 'Quatsch' schreibe, tue uch das mit der besten Absicht, und wenn jemand diese nicht voll qualifizierte Hilfe nicht will, hat er eben Pech gehabt, was mir dann relativ wurscht ist.
ollo
 
Posts: 85
Joined: 11. November 2004 12:29

Postby miguelMadam » 14. November 2004 13:34

Guten Tag,

mir geht es genauso. Seit Stunden suchen ich eine Antwort darauf, wohin eine Email gesendet wird / verschwindet, wenn ich meine Site auf localhost teste. Auf dem "echten Server" verschickt der php-Code Emails an die hinterlegten Adressaten.

Bislang hatte ich den Emailversand online auf dem "echten Server" getestet. Ich würde aber gerne wie romi den Emailversand offline auf localhost testen.

Nur: was macht localhost mit den Emails. Ich bekomme noch nicht einmal eine Fehlermeldung. Alles funktioniert und flutscht, aber was ist mit den Emails ??????

Also wenn localhost den Server simuliert, dann müßte man wissen, was der Server mit den zB von php generierten Emails macht. Der bzw "mein" Server wird - so vermute ich - "wissen", wer mein POP-Ausgangsserver ist und wie er den anzuspechen hat. Dann müßte ich unter XAMPP auch einen localhost-POP-Ausgangsserver betreiben bzw. simulieren. Der muß und soll die Emails eigentlich nicht in die große weite Welt schicken, sondern es reicht, wenn ich mir quasi den Postausgang ansehen kann. Das wäre für die Testzwecke völlig ausreichend, da ich sehe könnte, an wen er was schicken würde.

Ist Mercury eine Antwort?

Warum romi hier so naseweise Antworten erhält, ist mir nicht verständlich. Wer nicht weiß, was er schreiben soll, sollte es besser bleiben lassen.

Ansonsten muß ich doch mal los werden, daß dieses Forum und vor allem XAMPP beste Sahne ist. Nur weiter so.

Es grüßt miguelMadam
miguelMadam
 
Posts: 3
Joined: 14. November 2004 13:12

Postby ollo » 14. November 2004 13:52

miguelMadam wrote:Warum romi hier so naseweise Antworten erhält, ist mir nicht verständlich. Wer nicht weiß, was er schreiben soll, sollte es besser bleiben lassen.


LOL, ich versuche es gerne nochmal: :D :D :D

PEAR -> Mail Klasse!
Pro: flexibler, läuft überall
Contra: nicht so simpel wie mail()

BTW ist POP für den Posteingang.
ollo
 
Posts: 85
Joined: 11. November 2004 12:29

Postby Wiedmann » 14. November 2004 14:35

Nur: was macht localhost mit den Emails.

PHP/Linux: mail() übergibt die Mails an das Programm "sendmails" welches dann für den Mailbersand sorgt.
PHP/Win: mail() spielt Outlook und verschickt die Mails über den konfigurierten Mailserver. Der wird als Standard auf dem selben Rechner gesucht (localhost). PHP pur kann sich an einem SMTP-Server aber nicht anmelden!

Ich bekomme noch nicht einmal eine Fehlermeldung.

Was bei einem XAMPP ohne Konfigurationsänderung merkwürdig wäre. Auch, solange kein (pseudo) Mailserver auf Port 25 die Mails entgegennimmt. Wenn du den Mercury laufen hast, nimmt dieser ohne Änderung glaub auch nur Mails für @localhost an.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby miguelMadam » 14. November 2004 19:43

Wiedmann wrote:
Nur: was macht localhost mit den Emails.

XAMPP ist von mir nicht verändert, da ich nicht weiß, wie und was ich verändern sollte.

Wiedmann wrote:
PHP/Win: mail() spielt Outlook und verschickt die Mails über den konfigurierten Mailserver. Der wird als Standard auf dem selben Rechner gesucht (localhost). PHP pur kann sich an einem SMTP-Server aber nicht anmelden!

XAMPP läuft bei mir unter Win98 (bin halt etwas altertümlich: Systeme, die funktionieren, soll man nicht verändern). Outlook ist auch installiert und funktioniert mit der Außenwelt propper.

Ich habe aber XAMPP nicht gesagt, wohin mit den Emails. In Outlook kommt "local" auch nichts an. Weder ist im Eingang noch im Ausgang irgend eine Reaktion, wenn ich "local" über php mail() was versende. Es geht auch nichts an die Außenwelt, da ich ja offline bin.

Wiedmann wrote:
Ich bekomme noch nicht einmal eine Fehlermeldung.

Was bei einem XAMPP ohne Konfigurationsänderung merkwürdig wäre. Auch, solange kein (pseudo) Mailserver auf Port 25 die Mails entgegennimmt.

Auch wenn es merkwürdig ist, ich bekomme überhaupt keine Reaktion "local". Auf der Site klappt es aber.

Muß ich nicht Outlook mitteilen, daß was auf PORT 25 ankommen könnte? Wenn ja, wie mach ich das?

Mercury habe ich noch nicht installiert!
miguelMadam
 
Posts: 3
Joined: 14. November 2004 13:12

Postby Wiedmann » 14. November 2004 20:51

Ich habe aber XAMPP nicht gesagt, wohin mit den Emails. In Outlook kommt "local" auch nichts an. Weder ist im Eingang noch im Ausgang

PHP hat nichts mit einem evtl. installiertem Outlook zu tun (und benutzt dieses auch nicht). Es versendet Mails nur auf die selbe Weise wie es auch z.B. Outlook tun würde (das war eine Info zu deinem Verständnis...).

Auch wenn es merkwürdig ist, ich bekomme überhaupt keine Reaktion "local". Auf der Site klappt es aber.

Wenn du nichts geändert hast, versucht PHP Mails über einen lokalen Mailserver zu verschicken. Wenn bei dieser Funktion kein Fehler kommt:
a) du hast doch ein (Mailserver)Programm laufen was Mails entgegennimmt
b) Es ist nicht dein eigenes Script. Somit kannst du auch nicht wissen, ob in dem Script die Fehlerausgabe abgeschaltet wurde. Und ob dieses (intelligent) auf so eine Situation reagieren kann.

Was auf "deiner Site" funktioniert ist hier eh uninteressant.

Muß ich nicht Outlook mitteilen, daß was auf PORT 25 ankommen könnte? Wenn ja, wie mach ich das?

Outlook ist kein Mailserver und kann somit auch keine Mails entgegennehmen. (Outlook hat nur einen entsprechenden (POP-) Client um seinerseits Mails von einem Server abzuholen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 53 guests