2. eMailadresse im Script
Mike
- perl
0 Dennis Plöger0 Mike0 Mike0 Wolfgang Wiese0 Mike
0 Michael Schröpl
0 Peter Squentz
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
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
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
Ich schicke Dir das Script mal per eMail zu, dann siehst Du es besser....
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
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
»» $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
»» $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
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.
$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