Peter: automatische e-mail

Hallo zusammen,
ich habe folgendes Problem. Ich möchte gerne ein Skript schreiben, welches jede Woche mir und ein paar anderen Menschen so ca. 5 anderen eine Email mit immer dem selben inhalt zukommen lässt. Ich hab mir das so vorgestellt, das ich einfach mein skript von meinem kontaktformular nehme und es etwass modiviziere.
Das is das was ich bis jetzt habe

<?php
// Empf‰nger
$email = "mail@musteradresse.com";

// Betreff
$betreff = "Beispielbetreff";

// Weiterleitung
$weiterleitung = "http://beispielseite.com/index.php?site=kontakt&ebene2=danke";

// Inhalt
$inhalt =  $_POST['nachricht']."\n";

// Hier nichts ‰ndern
$headers = "MIME-Version: 1.0\r\n".
 "Content-type: text/html; charset=iso-8859-1\r\n".
 "From: "$_POST[name]" <".$_POST['absendermail'].">\r\n".
 "Date: ".date("r")."\r\n".
 "Subject: ".$betreff."\r\n";

mail("$email", "$betreff", "$inhalt", "$headers");
header ("Location: $weiterleitung");
exit;
?>

Doch ich hab nicht wirklich ahnung wie ich es schaffe es anzupassen. Denn die weiterleitung brauch ich ja z.B. nicht.
Hat jemand ne Idee wie ich das am besten umsetzen kann? oder bin ich total auf dem holzweg?
Vielen Dank im Vorraus
Peter

  1. Hallo Peter,

    Wie wäre es einfach mit einem Array mit den Emails:
    $empf = array('Email-Adresse1','Email-Adresse2','usw');

    Und dann packst du das Ganze einfach in eine Schleife:

    for ($i=0; $i<count($empf); $i++) {
    $email = $empf[$i];  // Bezogen auf dein Script

    // Rest deines Scripts

    }

    Dann nimmst du einfach die Weiterleitung raus und fertig.

    Gruß,
    Dodwin

    1. Ja das könnte funtzen. Hab jetzt gerade leierder keine Zeit es auszuprobieren (muss zu oma zum kaffeetrinken). Aber wie sage ich ihm, dass er immer montag morgen um 0:15 eine email schicken soll? das is noch ein problem.
      Ich könns ja auch imemr von hand verschicken, aber ich vergesse es ja leider auch immer ;-)
      Liebe Grüße
      Peter

      1. Ich grüsse den Cosmos,

        Aber wie sage ich ihm, dass er immer montag morgen um 0:15 eine email schicken soll? das is noch ein problem.

        Sowas gbeht per CRON o.ä.

        Möge das "Self" mit euch sein

        --
        Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
        ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
      2. Hallo Peter,

        [...] immer montag morgen um 0:15 eine email schicken soll [...]

        Entweder dein Server verfügt über Cronjobs oder aber du musst auf einen Service wie diesen zurückgreifen.

        Gruß,
        Dodwin

        1. Danke für den Link. Funktioniert jetzt auch alles ganz gut. Doch leider wird immer nur eine email an den geschickt, der als erstes in der Liste steht. Aber es soll ja an alle eine Email geschickt werden. Woran kann das denn liegen?
          Liebe Grüße
          Peter

          1. Hallo Peter,

            Doch leider wird immer nur eine email an den geschickt, der als erstes in der Liste steht. Aber es soll ja an alle eine Email geschickt werden. Woran kann das denn liegen?

            ohne Code schwer zu sagen. Wahrscheinlich daran, dass du die Mail nur an einen Empfänger schickst. Mehr gibt meine Glaskugel nicht her. ;-)

            So long,
             Martin

            --
            Letztlich basiert alles auf dem Feuer, dem Rad, der Eins und der Null.
              (Gernot Back)
            1. Ja das haste wohl recht ;-) Sorry, hab ich total vergessen. Hier der Code den ich bis jetzt geschrieben habe:

              <?php
              // Empf‰nger
              $empf = array('internet@test.com','mail@test.com');

              // Betreff
              $betreff = "Beispielbetreff";
              // Inhalt
              $inhalt = "Ich bin der inhalt";

              for ($i=0; $i<count($empf); $i++) {
              $email = $empf[$i];

              // Hier nichts ‰ndern
              $headers = "MIME-Version: 1.0\r\n".
                     "Content-type: text/html; charset=iso-8859-1\r\n".
                      "From: "$_POST[name]" <".$_POST['absendermail'].">\r\n".
                      "Date: ".date("r")."\r\n".
                      "Subject: ".$betreff."\r\n";

              mail("$email", "$betreff", "$inhalt", "$headers");
              header ("Location: $weiterleitung");
              exit;
              }
              ?>

              Ich hab mich jetzt auch bei cronjob angemeldet. klappt auch so weit. Doch leider werden mir 21 emails zugeschickt. das sind 20 zu viel. Keine ahnung woran das liegt. Wenn ich das skript manuell aufrufe bekomme ich nur eine mail. Aber warum immer nur die erste email angesprochen wird in dem skript weiß ich auch nicht.
              Liebe Grüße
              Arne

              1. Hallo,

                for ($i=0; $i<count($empf); $i++) {
                $email = $empf[$i];

                das fängt ja eigentlich ganz vernünftig an, nur mit dem exit nach dem ersten Mail-Versand beendest du das Script ja, noch bevor es zum zweiten Schleifendurchlauf kommt. Also: Works as designed. ;-)

                mail("$email", "$betreff", "$inhalt", "$headers");

                Warum so umständlich? Wozu bettest du die Variablen nochmal in einen String ein und machst dem PHP-Parser dadurch mehr Arbeit als nötig?

                header ("Location: $weiterleitung");

                Und das wolltest du doch weglassen, oder hatte ich das falsch verstanden?

                Ich hab mich jetzt auch bei cronjob angemeldet. klappt auch so weit. Doch leider werden mir 21 emails zugeschickt. das sind 20 zu viel.

                Kann ich dir auch nicht sagen, warum - aber es bedeutet, dass dein Script 21mal aufgerufen wird. Da ich cronjob.de nicht kenne, musst du da wohl alleine durch.

                Arne

                Oh - leidest du unter einer gespaltenen Persönlichkeit?
                Gute Besserung,
                 Martin

                --
                Schildkröten können mehr über den Weg berichten als Hasen.
                1. Ah, Danke für den Tipp mit dem Exit. Damit is das problem behoben.
                  Nee ich leide nicht unter einer gespaltenen persönlichkeit. Peter und Arne sind 2 verschiedene Personen. Peter hat angefangen mit dem prblem, und Arne hat weitergemacht. Ich wollt nur keine verwirrung ins spiel bringen. Und dann hab ich falsch unterschrieben. Also wir sind brüder. So kann es gehen.
                  Also skript funst jetzt so weit. Besten dank für die Hilfe und noch einen schönen Sonntag Abend.
                  Liebe Grüße
                  Arne

  2. Servus,

    Denn die weiterleitung brauch ich ja z.B. nicht.

    Dann lass die Weiterleitung doch einfach weg ;)

    Hat jemand ne Idee wie ich das am besten umsetzen kann? oder bin ich total auf dem holzweg?

    Setze einfach alle Adressaten als Header (ob To, Cc oder Bcc musst du selbst entscheiden), wenn die Inhalte wirklich 100% identisch sind. Ansonsten setze es, wie Dodwin sagte, mit einer Schleife um.

    Dann bleibt nurnoch die Frage, 'wann' die Mails verschickt werden sollen. Du koenntest natuerlich jede Woche dein Script von Hand aufrufen; oder falls moeglich, einen Cronjob einrichten, der dies fuer dich erledigt.

    Gruss
    Patrick

    --
    sh:( fo:| ch:? rl:( br:> n4:( ie:% mo:) va:} de:> zu:) fl:| ss:| ls:[ js:|