kati: Sendmail Apache

Hallo

Ich hab ne Seite über xampplite am laufen und möchte jetzt ein Formular mit Mail() versenden. Ich will das mit den Formmailer (mailer.php) von SelfHtml machen. In diesem Formular gibt man seine eigene Emailaddi an und wenn das Mail dann ankommt, sollte dies der Absender sein.

Beim versenden kommt dann aber folgende Fehlermeldung:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in I:\xampplite\htdocs\mailer.php on line 55

Ich hab  mich schon durch das Archiv und google gewälzt und gelesen man sollte in der Datei sendmail.ini und/oder in php.ini folgendes anpassen:

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

; For Win32 only.
sendmail_from = deine mail addy  <--

Jetzt die Frage:

  1. Für was ist die Datei sendmail.ini zuständig? Für das versenden von Mails durch Formulare (so wie ich es will) oder für anderes?
  2. Wenn es für das versenden von Formularen gebraucht wird, was muss ich dann da angeben? Meine addi macht ja keinen Sinn, da der Sender immer neu im Formular angegeben wird.
  3. Wenn die Datei sendmail.ini nicht dafür zuständig ist, wie kann ich dann
    die funktion mail() dann zum laufen bringen?

Ich hoffe, man versteht mein Problem, ich bin ziemlich unerfahren im ganzen Server / locahost Sachen.. :P

Gruss und Danke

  1. Hi,

    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in I:\xampplite\htdocs\mailer.php on line 55

    ja und - hast du denn einen SMTP-Mailserver auf deinem Rechner (localhost) laufen? Vermutlich nicht.

    Ich hab  mich schon durch das Archiv und google gewälzt und gelesen man sollte in der Datei sendmail.ini und/oder in php.ini folgendes anpassen:

    Eine sendmail.ini ist mir zumindest bei der Windows-Version von Apache und PHP noch nicht begegnet.

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

    ; For Win32 only.
    sendmail_from = deine mail addy  <--

    1. Für was ist die Datei sendmail.ini zuständig? Für das versenden von Mails durch Formulare (so wie ich es will) oder für anderes?

    Keine Ahnung, ich kenne sie nicht.

    1. Wenn es für das versenden von Formularen gebraucht wird, was muss ich dann da angeben? Meine addi macht ja keinen Sinn, da der Sender immer neu im Formular angegeben wird.

    Moment: Du willst von deinem Server aus Mails verschicken, aber als Absender etwas angeben, das der Benutzer in einem Formular einträgt? Das ist etwas unfein. Möglich, aber unfein.

    1. Wenn die Datei sendmail.ini nicht dafür zuständig ist, wie kann ich dann die funktion mail() dann zum laufen bringen?

    Indem du in der php.ini den Abschnitt, den du oben schon zitiert hast, mit sinnvollen und korrekten Angaben vervollständigst. Trage also den Hostnamen des Mailservers ein, den du benutzt, die Portadresse 25 ist in der Regel richtig. Und eine Default-Absenderadresse solltest du auch noch eintragen.

    Es könnte aber sein, dass du mit dieser Konfiguration noch nicht glücklich wirst, denn die meisten Provider verlangen heutzutage SMTP mit Authentifizierung (Login). Das kann PHP nicht.

    Um aus diesem Dilemma rauszukommen, gibt es zwei Möglichkeiten:
    1. Stelle den Authentifizierungsmechanismus bei deinem Mail-Provider auf SMTP-after-POP. Dann musst du jedesmal, bevor du Mail verschicken willst, einmal kurz per POP3 deinen Account abfragen, und in einem kurzen Zeitfenster danach (idR wenige Minuten) erlaubt der Server dann auch SMTP ohne Login von derselben IP-Adresse.
    2. Installiere einen lokalen Mailserver, z.B. Mercury/32, der die von PHP verschickten Mails entgegennimmt und an den öffentlichen Mailserver weiterreicht. Mercury/32 ist im XAMPP-Paket enthalten.

    So long,
     Martin

    --
    F: Was sagt die kleine Kerze zur großen Kerze?
    A: Ich gehe heute nacht aus!