Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mehrere E-Mail Empfänger in Send-Mail Perl-Skript

Mitglied: Jordan

Jordan (Level 1) - Jetzt verbinden

01.09.2017, aktualisiert 11:18 Uhr, 1239 Aufrufe, 2 Kommentare

Hallo zusammen,

ich hatte vorher noch keinen Kontakt mit Perl-Skripten. Nun möchte ich ein bestehendes Perl-Skript für das Versenden von E-Mails auf einer HTML-Homepage bearbeiten.
Ich möchte lediglich mehrere Empfänger hinzufügen. Mit meinen Versuchen das Skript damit zu erweitern funktionieren leider nicht.
Hier das Skript:
01.
#!/usr/bin/perl
02.

03.
# -------> Individuelle Parameter des Skriptes - bitte anpassen!
04.
# --> SMTP-Programm zum Versenden der Mail:
05.
$Sendmail_Prog = "/usr/sbin/sendmail -t -f formular\@example.com";
06.
# --> Ziel-Mailadresse, an die gesendet werden soll:
07.
$mailto = 'info@example.com';
08.

09.
# -------> Modul für CGI-Scripts einbinden:
10.
use CGI;
11.

12.
# -------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:
13.
$query = new CGI;
14.
@names = $query->param;
15.

16.
# -------> interne Daten aus den erwarteten hidden-Feldern auslesen:
17.
$delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value
18.
$returnhtml = $query->param('return');    # ---> URL für Dankeseite
19.
$subject = $query->param('subject');      # ---> E-Mail-Subject
20.

21.
# -------> alle Whitespace-Zeichen (Leerzeichen, Tabulator, Newline) in Leerzeichen wandeln
22.
#             VERHINDERT sonst möglichen MISSBRAUCH des Skripts
23.
$subject =~ s/\s/ /g;
24.

25.
# -------> Text der E-Mail aus den Formulardaten ermitteln:
26.
$mailtext = "";
27.
foreach(@names) {
28.
  $name = $_;
29.
  @values = "";
30.
  @values = $query->param($name);
31.
  if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
32.
    foreach $value (@values) {
33.
      $mailtext = $mailtext.$name;
34.
      $mailtext = $mailtext.$delimiter;
35.
      $mailtext = $mailtext.$value."\n";
36.
    }
37.
  }
38.
}
39.

40.
# -------> E-Mail versenden:
41.
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
42.
print MAIL "To: $mailto\n";
43.
print MAIL "Subject: $subject\n\n";
44.
print MAIL "$mailtext\n";
45.
close(MAIL);
46.

47.
# -------> Dankeseite an Browser senden:
48.
print "Location: $returnhtml\n\n";
- 2x $mailto untereinander funktioniert nicht. Nur der letzte Eintrag bekommt eine Mail.
01.
$mailto = 'info@example.com';
02.
$mailto = 'info2@example.com';
- Kommagetrennt klappt nicht
01.
$mailto = 'info@example.com','info2@example.com;
- Mit Klammern klappt es auch nicht.
- alle weiteren Versuche klappten auch nicht.
Könnt ihr mir bitte sagen wie dir korrekte Syntax lautet?

Vielen Dank.
Mitglied: em-pie
01.09.2017 um 11:32 Uhr
Moin,

also deine erste Variante ist ja "logisch" dass die nicht funktioniert:
mit der zweiten Zeile überschreibst du den Inhalt der ersten Zeile...

mit dem zweiten Versuch kann PERL vermutlich auch nichts anfangen, da das Komma ja außerhalb der Hochkommata ist und u.U. beide STrings trennt.

Es gäbe aber zwei Varianten:
a) du schiebst dir die Empfänger in ein Array und läst deinen Mailversand mitteils einer For Each-Schleife versenden oder
b) du schaust einmal hier: https://stackoverflow.com/questions/10521011/sending-email-to-multiple-r ...

Gruß
em-pie
Bitte warten ..
Mitglied: Jordan
01.09.2017 um 11:55 Uhr
Danke für den Denkanstoß. Den brauchte ich.
Quick and dirty. Für meine Zwecke vollkommen ausreichend.
01.
#!/usr/bin/perl
02.

03.
# -------> Individuelle Parameter des Skriptes - bitte anpassen!
04.
# --> SMTP-Programm zum Versenden der Mail:
05.
$Sendmail_Prog = "/usr/sbin/sendmail -t -f formular\@example.com";
06.
# --> Ziel-Mailadresse, an die gesendet werden soll:
07.
$mailto1 = 'info@example.com';
08.
$mailto2 = 'info2@example.com';
09.

10.
# -------> Modul für CGI-Scripts einbinden:
11.
use CGI;
12.

13.
# -------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:
14.
$query = new CGI;
15.
@names = $query->param;
16.

17.
# -------> interne Daten aus den erwarteten hidden-Feldern auslesen:
18.
$delimiter = $query->param('delimiter');  # ---> Begrenzerzeichen zwischen name und value
19.
$returnhtml = $query->param('return');    # ---> URL für Dankeseite
20.
$subject = $query->param('subject');      # ---> E-Mail-Subject
21.

22.
# -------> alle Whitespace-Zeichen (Leerzeichen, Tabulator, Newline) in Leerzeichen wandeln
23.
#             VERHINDERT sonst möglichen MISSBRAUCH des Skripts
24.
$subject =~ s/\s/ /g;
25.

26.
# -------> Text der E-Mail aus den Formulardaten ermitteln:
27.
$mailtext = "";
28.
foreach(@names) {
29.
  $name = $_;
30.
  @values = "";
31.
  @values = $query->param($name);
32.
  if($name ne "return" && $name ne "subject" && $name ne "delimiter") {
33.
    foreach $value (@values) {
34.
      $mailtext = $mailtext.$name;
35.
      $mailtext = $mailtext.$delimiter;
36.
      $mailtext = $mailtext.$value."\n";
37.
    }
38.
  }
39.
}
40.

41.
# -------> E-Mail versenden:
42.
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
43.
print MAIL "To: $mailto1\n";
44.
print MAIL "Subject: $subject\n\n";
45.
print MAIL "$mailtext\n";
46.
close(MAIL);
47.

48.
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
49.
print MAIL "To: $mailto2\n";
50.
print MAIL "Subject: $subject\n\n";
51.
print MAIL "$mailtext\n";
52.
close(MAIL);
53.

54.
# -------> Dankeseite an Browser senden:
55.
print "Location: $returnhtml\n\n";
Bitte warten ..
Ähnliche Inhalte
E-Mail
Probleme beim E-Mail Empfang
gelöst Frage von TommyB83E-Mail12 Kommentare

Hiho, Blöde Frage, sorry, aber ich komme einfach nicht weiter. Ich habe einen Mailserver aufgesetzt, wie x Male zuvor ...

Batch & Shell
Skript zum E-Mail Anhang ausdrucken
gelöst Frage von NetzuserBatch & Shell5 Kommentare

Hallo zusammen, ich bin auf der Suche nach einem Skript das als Dienst und Client unabhängig auf meinem Exchange ...

E-Mail
E-Mail Newsletter
Frage von ProtectedE-Mail7 Kommentare

Hallo, wir versenden im Monat rund 1.000 E-Mails mit unserem E-Mail Server. Leider gelangen wir oft in Spam-Ordner bei ...

Entwicklung
E-mail Textanalyse
gelöst Frage von BitconEntwicklung5 Kommentare

Hallo zusammen Ich möchte im Rahmen meiner Ausbildung zum Fachinformatiker ein Projekt für die meine Firma realisieren. Das Projekt ...

Neue Wissensbeiträge
Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 2 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 2 TagenExchange Server3 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 2 TagenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Voice over IP

Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie

Erfahrungsbericht von NixVerstehen vor 6 TagenVoice over IP10 Kommentare

Hallo zusammen, nachdem nun vor ein paar Tagen die zwangsweise Umstellung von ISDN auf IP-Telefonie problemlos über die Bühne ...

Heiß diskutierte Inhalte
VB for Applications
Euro-Zeichen in jedem neu erstellten Brief mit Word automatisch entfernen
gelöst Frage von imebroVB for Applications23 Kommentare

Hallo, ich habe ein Problem mit Word, bzw. mit dem €-Zeichen, welches bei Erstellung eines Word-Briefes automatisch eingesetzt wird. ...

Batch & Shell
Regedit eintrad ändern als Admin
Frage von cyberworm83Batch & Shell19 Kommentare

Hallo zusammen, ich bin derzeit als Rollout Techniker unterwegs und muss täglich bei zig Rechnern einen Registry Einträg ändern ...

Visual Studio
Prüfen, ob Programm schon disposed wurde
Frage von MarcoBornVisual Studio17 Kommentare

Hallo Forum, ich habe in VB.NET ein Programm geschrieben, welches Word startet und dort Daten ausliest. Obwohl ich die ...

LAN, WAN, Wireless
Gebäude mit LWL-Anschlüssen ausstatten - VorNachteile?
Frage von staybbLAN, WAN, Wireless17 Kommentare

Hallo zusammen, es gibt ja mittlerweile viele Firmen die nicht nur ihre Backbones mit FibreChannel anbinden sondern auch direkt ...