mail-funktion wo, wie anfangen?

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

mail-funktion wo, wie anfangen?

Postby humanity » 31. July 2008 12:15

Begrüße euch alle!

Ich arbeite gerade an einer homepage. Natürlich mach ich das ganze lokal erst mal und teste auch alles lokal.

Hab mir xampp installiert Windows Version 1.6.6a .

Nun will ich bei meinem Projekt mal local, die mailfunction testen.

Aber ich finde einfach keine guten Erklärungen wo ich mit sowas anfangen kann.
Ich will die funktion mail() nutzen von php.

Ich will eigentlich nix großartiges machen, nur so bestätigungsmails für die Registrierung und gewisse Benachrichitigungen.
Wie kann ich nun sowas machen?

Wo fang ich am besten an?
Ich hab mich schon durchgegoogelt, aber ich find einfach immer no fragen und antworten, die für mich etwas zu fortgeschritten sind.
z.b. "ändere in der php.ini, das und das um..." Ich hab aber 4 php.inis."
etc.

hab eigentlich keine probleme mit sql und php, hab da auch schon eine sehr umfangreiche page gebastelt, aber nun steh ich an der mailfunction an.
humanity
 
Posts: 5
Joined: 31. July 2008 12:05

Postby Nobbie » 31. July 2008 13:14

Das Problem besteht grundsätzlich darin, dass PHP "an sich" keine Emails senden kann.

Um Emails versenden zu können, benötigt man einen sog. "SMTP" Server (SMTP = Simple Mail Transfer Protocoll). Das ist, ähnlich wie ein Webserver (Apache) oder ein FTP Server (filezilla) ein Serverprogramm, welches auf einem Server läuft und Mails verteilt.

PHP benutzt lediglich eine sehr rudimentäre Schnittstelle zu einem SMTP Server, um mit Hilfe der mail()-Funktion dann Emails zu verschicken. In der Datei php.ini muss man dafür bei der Option SMTP einen Server angeben, wo ein solcher SMTP Server läuft.

Die meisten (auch Du sicherlich) kennen mindestens einen SMTP Server, das ist nämlich der Server, den sie selbst in ihrem Email-Client (Thunderbird, Outlook etc.) angeben, und zwar den Server ihres Email-Providers. Das wäre beispielsweise mail.gmx.net - das könnte man theoretisch in php.ini nun angeben.

Das Problem ist aber, dass (auf Grund des SPAM Aufkommens) diese "öffentlichen" SMTP Server eine Authorisierung verlangen, d.h. Du stellst in Deinem Email-Programm eine UserID und ein Passwort ein, welches beim Versand von Emails von diesem SMTP Server verlangt und überprüft wird. Leider aber unterstützt die (wie gesagt sehr rudimentäre) mail-Funktion von PHP keine Authorisierung, d.h. man kann nirgends eine UserID oder ein Passwort angeben - und das bedeutet, dass die mail()-Funktion in Verbindung mit diesen öffentlichen SMTP-Servern nicht funktioniert.

Dazu gibt es zwei Umgehungslösungen:

1) Man kann bei SMTP auch den Wert "localhost" eintragen - das ist Dein eigener Rechner. Dann mußt Du aber auch wirklich eine SMTP Software dort laufen lassen - die wird sogar bei Xampp mitgeliefert und nennt sich "Mercury Mail". Den könnte man nämlich so einstellen, dass KEINE Authorisierung verlangt wird.

ABER: da entstehen zwei neue Probleme.

a) Erstens ist es NICHT einfach, dieses Mercury richtig zu konfigurieren (da scheitern Anfänger grundsätzlich schon).

b) und zweitens werden Emails, die letztendlich von solchen "privaten" SMTP Server verschickt werden (das erkennen die Empfänger an der IP, die der SMTP Server besitzt), auch wieder abgeblockt, wieder wegen der SPAM Seuche.

2) Die zweite Umgehungslösung ist deswegen (für private Windows-Rechner) vorzuziehen: man verzichtet auf die Verwendung der Funktion mail() und lädt stattdessen die sog. "mailerclass" von Sourceforge herunter. Die gibt es bei phpmailer.sourceforge.net

In dieser Mailerclass wird ein gut zu bedienendes Objekt zur Verfügung gestellt, welches öffentliche SMTP-Server inkl. Authorisierung adressieren kann. Die Konfiguration geschieht allerdings nicht in php.ini (der Eintrag von SMTP = ... in der php.ini spielt dann keine Rolle mehr, der Wert wird nicht benötigt), sondern direkt in dieser Klasse selbst (Du wirst Doku und Beispiele im Download finden).

Diese Klasse hat dann gleich noch weitere Vorteile: sie stellt eine standardisierte Programmierschnittstelle zur Verfügung, wie man "besondere Emails" beispielsweise HTML-Emails, oder Bilder als Attachments etc.pp. versenden kann, denn das mit der simplen mail()-Funktion in PHP zu versuchen scheitert auch nahezu immer an den dazu notwendigen Kenntnissen des Mail Protokolls.

Jetzt solltest Du wissen, wie PHP und Emails zusammenarbeiten und Dich dazu entscheiden, mit der Mailerclass von Sourceforge zu arbeiten.
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04

Postby deepsurfer » 31. July 2008 14:22

Oder man stellt den Mercury auch auf die gmx / web.de / etc. Server ein.

Im Forum gibt ein Bereich der sich nur damit befasst.
So auch die Auflistung von anderen Mailprogrammen, darunter auch Freie die durchaus etwas einfacher zu Administrieren sind.

Es wird auch dort beschrieben wie der Windows-Sendmail benutzt werden kann, denn dann braucht man nicht noch die php-mail.class zu Installieren, denn das scheinen ja auch einige nicht zu können, trotz ANleitungen.

Im \xampp\sendmail\ ist alles vorhanden womit man mittels mail() Function mails verscheicken kann und das mit den Kennungen von den freien Mailserver.

Es ist leider immer der Trugschluss das ja alles selber laufen MUSS um damit es funktioniert. Das Outsourcen von Mail-SMTP-Anweisungen hat seine sehr gute Berechtigung und sollte langsam einfach mal Gedanklich übernommen werden.

In diesem Sinne..
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby humanity » 01. August 2008 17:21

danke erst mal für die anworten.

nun damit nichts falsch geschieht, hab ich noch ein paar fragen.

ich werde die page ja später mal online stellen. ich hatte noch nie eine eigene page.

was ist dann am besten geeignet?
ich mein die meisten webspaceanbieter haben meistens auch einige internet-adressen, die sie einem webspace mitanbieten.

z.b.

ich nenne meine page www.homepage.com. dann soll meine email adresse administrator@homepage.com heißen.
d.h. ich hätte doch einen smtp server auf den webspaceanbieter.
wie soll ich meine homepage nun ausrichten?


zu Zeit hab ich das mit dem mercury von xampp probiert und sogar zum laufen gebracht.
hab mails aus meiner homepage verschickt, diese sind auch dann in pegasus angekommen.

aber nun hab ich irgendwas angestellt und es funktioniert einfach nicht mehr..
im mercury erkenne ich, dass er mails sendet und empfängt, aber ich kann sie nicht mehr abrufen mit einem mailprogramm. (pegasus oder outlook)
woran kann das liegen? er kann sich einfach nicht mehr connecten auf mercury.
humanity
 
Posts: 5
Joined: 31. July 2008 12:05

Postby deepsurfer » 01. August 2008 23:26

ich nenne meine page www.homepage.com. dann soll meine email adresse administrator@homepage.com heißen.
d.h. ich hätte doch einen smtp server auf den webspaceanbieter.
wie soll ich meine homepage nun ausrichten?

Richtig erkannt, aber was meinst Du mit "homepage ausrichten" ???

Beispiel:
Du mietest ein Webspace bei einem der vielen Bekannten WebHostern.
Musst nur schauen ob auch in dem Vetrag "mehrere" Pop3 Postfächer möglich sind.
Beim Vertragaufnahme wirst Du auch nach deiner Wunschdomain gefragt (prüfen ob diese auch frei ist)
Dann hast du perse schon mal eine Mailadresse unter dieser Domain bei den Provider, und durch die möglichkeit mehrere Pop3 Fächer zu erstellen kannst Du dir deine Mailadresse (also vor dem @) selber eintragen und benutzen.



aber nun hab ich irgendwas angestellt und es funktioniert einfach nicht mehr..
im mercury erkenne ich, dass er mails sendet und empfängt, aber ich kann sie nicht mehr abrufen mit einem mailprogramm. (pegasus oder outlook)
woran kann das liegen? er kann sich einfach nicht mehr connecten auf mercury.

Das kann jetzt viele Gründe haben, an dieser Stelle wäre es ratsam erstmal das "Umgestellte" wieder rückgängig zu machen.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby humanity » 01. August 2008 23:41

deepsurfer wrote:Richtig erkannt, aber was meinst Du mit "homepage ausrichten" ???


ich programmiere gerade meine homepage. es stellt sich die frage ob ich die funktion mail() oder sonstwas einbauen soll.

ich denke ich werde mit dieser function auskommen und mit php komm ich nun echt gut zurecht.

Das kann jetzt viele Gründe haben, an dieser Stelle wäre es ratsam erstmal das "Umgestellte" wieder rückgängig zu machen.[/quote]

es kommt dieser fehler in pegasus:

15: Peer connect failure (the host has refused the connection).
im outlook schaut der fehler so aus:

Bei der Verbindung zum Server ist ein Fehler aufgetreten. Konto: 'localhost', Server: 'localhost', Protokoll: POP3, Port: 110, Secure (SSL): Nein, Socketfehler: 10061, Fehlernummer: 0x800CCC0E

der smtp und der pop3-server haben beide den namen localhost.
der port 110 sowie 25 sind eingestellt in mercury.
der mercury erhält die mails, das sieht man an:
MAIL FROM:<newuser@localhost>
RCPT TO:<newuser@localhost>
DATA - 6 lines, 154 bytes.
QUIT
----------------------------

d.h. die mails wären schon in mercury, aber ich kann diese nur nicht abrufen. ich schaffe keine verbindung aufzubauen. ich habe keine firewall, hab windows2000 installiert
und das ganze sollte normal funktionieren, weil es schon mal funktioniert hat. ich weiß ned, ob meine firewall, oder irgend ein virus, oder sonst was meine ports blockiert oder verstellt haben oder sonst was.

ich würd echt gern ned dauernd was umstellen, sondern einfach nur zum testen local mal mails aus php schicken und empfangen können.
ich möcht so bestätigugnsmails machen und benachrichtigungen. ich will ja keine raumstation machen. :roll:
humanity
 
Posts: 5
Joined: 31. July 2008 12:05

Postby deepsurfer » 01. August 2008 23:55

ich würd echt gern ned dauernd was umstellen, sondern einfach nur zum testen local mal mails aus php schicken und empfangen können.
ich möcht so bestätigugnsmails machen und benachrichtigungen. ich will ja keine raumstation machen. Rolling Eyes



Sorry, klingt jetzt was hart, ABER denk ersmal über meine Antwort nach, dann wirst Du sehen das selbst Du jemand anderem das sagen würdest.

In Deinem Bereicht schreibst Du das mit dem Mail alles funktioniert hat und dann Zitat -->
aber nun hab ich irgendwas angestellt und es funktioniert einfach nicht mehr..
im mercury erkenne ich, dass er mails sendet und empfängt, aber ich kann sie nicht mehr abrufen mit einem mailprogramm. (pegasus oder outlook)
woran kann das liegen? er kann sich einfach nicht mehr connecten auf mercury.


Also, wer stellt denn "andauernd" etwas um ??, ich nicht, aber Du selber und genau da hab ich angesetzt.
Wenn Du etwas verstellst und etwas dann nicht mehr funktioniert so ist die logische folgerung doch erstmal das "Verstellte" Rückgängig zu machen.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby humanity » 02. August 2008 00:09

ich war der meinung ich habe nichts umgestellt.
nach dem es nicht mehr gegangen ist, hab ich begonnen sachen um zustellen.
am anfang dachte ich, es hängt an der firewall, danach hab ich diese abgeschaltet mir dann nen worm gefangen. :/
nun hab ich das alles beseitigt, aber funktionieren tuts nicht mehr.

an den einstellungen an sich im mercury hab ich nichts geändert.

eigentlich ist dieses mercury leicht aufgebaut und genau deswegen wunderts mich, dass es nicht geht.

ich werd es einfach alles neu installieren. xampp samt den ganzen sachen.
vielleicht hauts dann hin.

aber man findet nirgends eine gute erklärung im internet wie man sowas einstellt. andauernd liest man, "keiner kann nach einer anleitung sowas zum laufen bringen.", aber anscheinend gibts keine guten anleitungen.

ich habe nirgends gefunden, was man mit dem pegasus und mercury machen muss um local das mal zu testen.

soviele leute können das aber keiner kanns einem gscheid erklären... :roll:

man installiert sich ein xampp, das alles enthält und das meißte ist voreingestellt, aber sonst gibts dazu keine erklärung.
ich hab nichts gegen ein 50 seitiges handbuch, bin nicht lesefaul. aber ich find nirgends etwas gutes. :cry:
------------------------------------------------------------------------------------
humanity
 
Posts: 5
Joined: 31. July 2008 12:05

Postby deepsurfer » 02. August 2008 10:04

Es gibt Anleitungen dazu, selbst hier sind direkt LINKs verewigt, so auch von Usern die PDF Anleitungen gebastelt haben.

Das Hauptproblem liegt im Verständnis der Funktionsweise.
Für den LOKALEN Betrieb ist der mercury direkt nutzbar, nur ein User eintragen und schon ist ein Mailaccount fertig.

Viele "wollen" aber den Mailserver zuhause betreiben über eine Dynamische IP und keiner Registrierten Domain, daher gibt es einige Funktionen zu beachten damit diese Sache auch funktioniert.

Was aber 99% dieser User nicht verstehen (Funktionstechnisch) das auch der Mercury zum Abschicken und Abholen auch auf vorhandene Mailaccounts sich einklinken kann.

Nichts anderes macht die phpmail-Classes oder der im XAMPP mitgelieferte "Sendmail for windows" (SMTP einheit).
Einmal Die korreckten Daten eingestellt und schon kann mit normalen mail() Anweisungen in PHPscripten gearbeitet werden.

Das heisst, das PHPscript verschickt über mail() (auf lokalen SMTP, dieser klinkt sich in den Mailserver extern ein und verschickt.
Das Mailprogramm (Outlook /Pegasus/ etc) holen sich aber wie gewohnt bei dem externen Mailserver die Mails ab.

Will man "unbedingt" einen eigenen Mailserver betreiben sind halt Richtlinien ein zu halten, die sich nicht direkt bzw. nur schwer nach zu voll ziehen sind.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby humanity » 03. August 2008 18:38

so hab alles neu installiert,... dann is aufeinmal alles wieder gegangen.

hab lediglich den localhost in mercury eingestellt bei smtp und pop3 und schon geht alles.

aber das ganze funktioniert genau bis zum nächsten restart. nun gehts wieder nicht mehr :(

der pegasus kann wieder keine mails vom mercury entnehmen und ich hab 100 % nichts umgestellt.

nun woran liegt das?
kann jemand helfen? :oops:
humanity
 
Posts: 5
Joined: 31. July 2008 12:05


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 9 guests