Philipp: Warum funktioniert das Programm nicht?

Hi!

Ich habe mir vor kurzem folgendes Newsletter-Programm geschrieben:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><body>
<?php
 //Newsletter laden
 $bol=file_exists("aktuell.html");
 if($bol) {
  print('<p>Newsletter-Datei wird geladen</p>');
  $datei=fopen("aktuell.html","r");
  if($datei) {
   $newsletter=fread($datei,filesize("aktuell.html"));
   fclose($datei);
   print('<p>Okay, Newsletter-Datei wurde geladen</p>');
  }
  else {
   print("Newsletter-Datei konnte nicht geladen werden!");
  }
 }
 else {
  print("<p>Newsletter-Datei existiert nicht</p>");
 }
 //CSV-Datei laden
 $bol=file_exists("empfaenger.csv");
 if($bol) {
  $datei=fopen("empfaenger.csv","r");
  if($datei) {
   $dateigroesse=filesize("empfaenger.csv");
   print('<p>Newsletter wird verschickt:</p>');
   while(($data=fgetcsv($datei,$dateigroesse,";"))!=false) {
    //Jetzt Mail versenden:
    print($data[1]);
    print("<br>");
    mail($data[1],"Aktueller Newsletter",$newsletter, "Content-Type: text/html\nFrom:aaa@aaa.xxx");
   }
   fclose($datei);
   print('<p>Okay, Newsletter wurde verschickt:</p>');
  }
  else {
   print("<p>CSV-Datei konnte nicht geladen werden!</p>");
  }
 }
 else {
  print("<p>CSV-Datei existiert nicht</p>");
 }
?>
</body></html>

Es soll einen Newsletter an Adressen schicken, welche in der Datei empfaenger.csv stehen:

philipp;webmaster@philipp-wehner-homepage.de;19.08.2003;12:45:45

Der Newsletter steht in der Datei aktuell.html mit dem (einfachen) Inhalt:

Test

Wenn ich das Programm nun starte, gibt mir der Computer folgende Fehler aus:

Newsletter-Datei wird geladen

Okay, Newsletter-Datei wurde geladen

Newsletter wird verschickt:

webmaster@philipp-wehner-homepage.de

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 c:\home\phpkurs\homepage\newsletter.php on line 32

Notice: Undefined offset: 1 in c:\home\phpkurs\homepage\newsletter.php on line 30

Notice: Undefined offset: 1 in c:\home\phpkurs\homepage\newsletter.php on line 32

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 c:\home\phpkurs\homepage\newsletter.php on line 32

Okay, Newsletter wurde verschickt:

Was hab ich falsch gemacht? Warum läuft das Programm nicht?
Vielleicht könnt ihr mir ja weiterhelfen!

Danke im Vorraus!

Philipp

PS: Entschuldigt bitte vielmals die Länge meines Beitrages!

  1. Hi!

    HI PHILIPP

    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()

    Ich schätze mal, das du in deiner PHP.ini keinen SMTP Server angegeben hast.
    Wenn Du dort immernoch Localhost stehen hast, aber du dafür keinen Server eingerichtet hast, dann änder mal die einträge in deiner PHP.ini.
    SMTP =
    sendmail_from =
    verwende einfach die deaten, von einer Emailadresse. Bei T-online z.B.
    SMTP = mailto.t-online.de
    sendmail_from = Muster@t-online.de

    Danke im Vorraus!

    Wenn ich Dir helfen konnte, bitte gerne!

    LG aus Hamburg
    Torsten

  2. Hallo

    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 c:\home\phpkurs\homepage\newsletter.php on line 32

    Hm, Englisch solltest du schon können. Es steht doch dort, du hast keinen Mailserver bei dir am laufen. Und wenn wohl, dann ist er nicht richtig konfiguriert bzw. deine php.ini nicht.

    Notice: Undefined offset: 1 in c:\home\phpkurs\homepage\newsletter.php on line 30

    Auch hier steht der Fehler da. Das angesprochene Array hat nicht das gewählte Element. Ein solcher Fehler wäe durch:
    $arr = array("a", "b");
    echo $arr[4];
    reproduzierbar.

    Was hab ich falsch gemacht?

    Weder ins Manual, noch die PHP-FAQ noch Google, noch das Archiv beümht.
    Und in Zukunft unbedingt die entsprechenden Zeilen kenntlich machen. Durchzählen möchte hier niemand.

    Warum läuft das Programm nicht?

    Es läuft doch. Bis auf jene Fehler. Aber auch die werden anscheinend korrekt behandelt.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates