Mike: 2. eMailadresse im Script

Hallo,

#!/usr/bin/perl

$mailliste2 = ('adresse1@test.de','adresse2@test.de');

print "Content-type: text/html\n\n";
   print "email ist verschickt<br>\n";
   print "$mailliste2\n";

exit;

In der 8. Zeile wird mir nur "adresse2@test.de" angezeigt. Was muß ich zum Teufel tun, damit mir "adresse1@test.de, adresse2@test.de" anzeigt?  :-(

Danke für die Antworten!

Gruß, Mike

  1. Hallo Mike,

    »»    $mailliste2 = ('adresse1@test.de','adresse2@test.de');

    Erstmal ist $mailliste2 nicht richtig für ein Array,
    welches Du mit zwei Einträgen ja erzeugst. Benutze
    hierzu @mailliste2. Dann hast Du die beiden Adressen
    in einem Array abgespeichert.

    »»    print "$mailliste2\n";

    Zum Ausgeben eines Array benutzt Du eine abgewandelte
    For-Schleife:

    for (@mailliste2)
    {
    print "$_\n";
    }

    Dann sollten beide Adressen herauskommen.

    Bis dann,
    Dennis

    1. Hallo Dennis,

      vielen Dank für Deinen schnelle Antwort!

      Mein Problem ist nicht das Anzeigen der eMailadressen, dies sollte nur zu Testzwecken sein.

      also so geht das

      #!/usr/local/bin/perl

      $mailliste2 = "master@com-forum.de, m@mike-f.de";

      print "Content-type: text/html\n\n";
         print "email ist verschickt<br>\n";
         print "$mailliste2\n";

      exit;

      Da wird mir das im Netscape ohne Prob so angezeigt:

      master@com-forum.de, m@mike-f.de

      ABER jetzt kommt der Hammer:

      #!/usr/local/bin/perl

      $wSendmail_aufruf = "c:/www/com/htdocs/sendmail/WSendmail15.exe";
         $dos_pfad = "c:/www/com/htdocs/sendmail/temp/";
         $perl_pfad = "/www/com/htdocs/sendmail/temp/";

      $absender_email = "mf@mike-f.de";

      $emailmaster .= "TEST, ob 2 oder nur eine Mail kommt";

      $jetztwert = time();
         $temp_file = "chatforummaster".$jetztwert.".txt";
         $dos_temp_file = $dos_pfad.$temp_file;
         $dos_temp_file =~ s///\/gi;
         $open_write_tempfile = ">".$perl_pfad.$temp_file;

      open (DATEI,$open_write_tempfile);
         print DATEI $emailmaster;
         close (DATEI);

      $mailliste2 = "master@com-forum.de, m@mike-f.de";

      $email_subject2= "eMailtest";

      $wSendmail_system_aufruf = $wSendmail_aufruf." -CGI -s"".$email_subject2."" -f".$absender_email." ".$mailliste2." ".$dos_temp_file;
         system ("$wSendmail_system_aufruf");

      &antwort;

      exit;

      sub antwort {

      print "Content-type: text/html\n\n";
         print "email ist verschickt<br>\n";
         print "$mailliste2\n";

      exit;

      }

      Da wird mir das Script auf meine Platte gespeichert, statt die Mail zu verschicken  *grmpf*

      Ich habe auch mal so versucht:

      $mailliste2 = ('master@com-forum.de', 'm@mike-f.de');

      oder so:

      $mailliste2 = ('master@com-forum.de','m@mike-f.de');

      Ich habe so vieles probiert....nix geht

      Lieben Gruß, Mike

      1. Ich schicke Dir das Script mal per eMail zu, dann siehst Du es besser....

        1. Ich schicke Dir das Script mal per eMail zu, dann siehst Du es besser....

          .. Das ist besser, da blicke ich nämlich so auf
          Anhieb nicht durch...

          :-)

          Bis dann,
          Dennis

      2. Hi,

        wo hast du das Skript her? cgi-resources.com?
        Das waere ideal fuer meine Security-Seite als eines der Skripten, die man nicht
        einsetzen sollte, weil indirekt  unsicher :)
        Ich frag mich naelich, wie du spaeter mal die E-Mail-Adresse bekommen
        wirst (wahrscheinlich ueber Web), und ob du dann das Sendmail-Skript
        dann genauso aufrufst...Naja...Wie waren noch die Pipe-Symbole auf PC?
        Ich denke da an solche E-Mailadresse:
        "bla@fasel.dedeltree+*"

        Egal, in medias re:

        #!/usr/local/bin/perl

        »»    $wSendmail_aufruf = "c:/www/com/htdocs/sendmail/WSendmail15.exe";
        Wieso machst du ein (Wie heisst das Ding noch?) vor dem Punkt?
        Loesch das, der Punkt darf hier nicht auskommentiert werden.

        »»    $temp_file = "chatforummaster".$jetztwert.".txt";

        Dito hier.

        »»    $mailliste2 = "master@com-forum.de, m@mike-f.de";

        Wenn du es als String benutzt, schaut es ok aus.
        Unten und in der Message zuvor redest du jedoch
        von Feldern was hier falsch waere!

        »»    $email_subject2= "eMailtest";

        »»    $wSendmail_system_aufruf = $wSendmail_aufruf." -CGI -s"".$email_subject2."" -f".$absender_email." ".$mailliste2." ".$dos_temp_file;
        »»    system ("$wSendmail_system_aufruf");

        Schaut ok aus   - Wenn die Mailadressen wirklich mit Komma getrennt sein duerfen.....
        Duerfen Sie?

        Ciao,
          Wolfgang

        1. »»    $wSendmail_aufruf = "c:/www/com/htdocs/sendmail/WSendmail15.exe";
          Wieso machst du ein (Wie heisst das Ding noch?) vor dem Punkt?
          Loesch das, der Punkt darf hier nicht auskommentiert werden.

          OK...ist gemacht

          »»    $mailliste2 = "master@com-forum.de, m@mike-f.de";

          Wenn du es als String benutzt, schaut es ok aus.

          Das funzt eben nicht. Da wird mir die Datei auf die locale Platte geladen.

          $mailliste2 = "master@com-forum.de,m@mike-f.de";

          So funzt es, aber es wird nur an m@mike-f.de verschickt.

          Schaut ok aus   - Wenn die Mailadressen wirklich mit Komma getrennt sein duerfen.....
          Duerfen Sie?

          Müssen sogar!

          cu...Mike

          1. »»    $mailliste2 = "master@com-forum.de, m@mike-f.de";

            Wenn du es als String benutzt, schaut es ok aus.

            Das funzt eben nicht. Da wird mir die Datei auf die locale Platte geladen.

            Dumme Frage, aber:
            Das Perl das du da nutzt, ist doch Perl 5 oder?
            Nicht Perl 4?

            $mailliste2 = "master@com-forum.de,m@mike-f.de";

            So funzt es, aber es wird nur an m@mike-f.de verschickt.

            Tja, mir scheint, es liegt dann nur an die Uebergabe an das
            Sendmail-Prograemmchen fuer Windows... Da muesste also in dessen Dok stehen, wie
            du Adressen uebergibst...

            Ciao,
              Wolfgang

      3. Da wird mir das Script auf meine Platte gespeichert, statt die Mail zu verschicken  *grmpf*

        Das soll es doch auch!

        So, wie ich das Skript verstehe, macht es nacheinander zwei Dinge:
        1. Zusammenbau der gesamten Mail und Abspeichern in einer temporären Datei (funktioniert).
        2. Übergeben des Namens dieser Datei an ein Programm zum Versenden der Mail, dessen Name in der Variablen '$wSendmail_aufruf' steht (funktioniert nicht).

        Da Du die temporäre Datei bereits erzeugen und per Debug-Ausgabe auch das vollständige Kommando ausgeben kannst, welches per "system" ausgeführt werden soll, kannst Du genausogut auch mal dieses Kommando in einer DOS-Box eingeben und prüfen, ob da ggf. irgendeine hilfreiche Fehlermeldung kommt, welche Dein Skript wegwirft ("system ()" ignoriert Ausgaben des Kommandos).
        Alternativ könnte Dein Skript statt "system ()" einfach backticks verwenden und die so eingefangene Fehlermeldung selbst nach stdout schreiben ... das wäre hilfreich, wenn mal jemand anderes das Skript irgendwo installieren will.

  2. $mailliste2 = ('adresse1@test.de','adresse2@test.de');
    In der 8. Zeile wird mir nur "adresse2@test.de" angezeigt. Was muß ich zum Teufel tun, damit mir "adresse1@test.de, adresse2@test.de" anzeigt?  :-(

    $mailliste2 = 'adresse1@test.de, adresse2@test.de';

    Peter