perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 14
Click for quality!




12.02.2012 / 02:44

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragMailscript läuft nicht ? Wo ist der Fehler ?
Seitenanfang
Hallo,

ich habe eine Bitte :
Ich habe da ein Script gebastelt, daß mir an eine Liste von Empfängern jeweils einen Text nach dem anderen schickt. Das läuft auch recht gut, solange ich das mit sendmail mache (der auskommentierte Teil des Scripts ab Zeile 92.

Nun will ich aber HTML-Mails versenden und nutze MIME::Lite.pm

Doch irgendwo ist der Fehler drin, es kommen immer Fehlermeldungen a la
"Name "main::footer" used only once: possible typo at test.pl line 86.
Name "main::header" used only once: possible typo at test.pl line 86." je nachdem, wo ich einfache oder doppelte Anführungszeichen setze.

Kann mir einer einen Tip geben, wo der Fehler liegt ? (Ich kopiere hier das ganze Script rein, der MIME:Lite - Teil beginnt ab Zeile 80.

Danke im Voraus !!!
Thomas

#! /usr/bin/perl -w
my $admin='meineemailadresse';
my $sendmail='/usr/sbin/sendmail';
use MIME::Lite;

my $directory="automatic";
# chop $directory;
my $textdb='./'.$directory.'/texte.db';
my $adressdb='./'.$directory.'/adressdatenbank.db';
my $head='./'.$directory.'/header';
my $foot='./'.$directory.'/footer';
my $from='./'.$directory.'/from';
my @bodyname;
my $texlen='0';

open(TEXT,$textdb); #text.db-Format lfd.Nummer 0-xxx
my @text=<TEXT>; # Subject-Zeile
close(TEXT); # Dateiname des Bodys
my $texl=@text;

for (my $i1=0;$i1<$texl;++$i1)
{

push(@textnr, $text[$i1]);
push(@subject, $text[++$i1]);
++$i1;
if ($text[$i1]) {
$textbody='./'.$directory.'/'.$text[$i1];
chomp $textbody;
push(@bodyname, $textbody);
++$texlen;
}

}

open(FOOTER,$foot);
my @footer=<FOOTER>;
close(FOOTER);
open(HEADER,$head);
my @header=<HEADER>;
close(HEADER);
open(FROM,$from);
my $fromhead=<FROM>;
close(FROM);

open(ADRESSEN,$adressdb); #Adress.db-Format eMail@domain.tld
my @adr=<ADRESSEN>; # Status im Seminar
close(ADRESSEN); # Status 0=keine Mail bekommen
my $adrl=@adr;
for (my $i2=0;$i2<$adrl;++$i2)
{
push(@email, $adr[$i2]);
push(@stat, $adr[++$i2]);
}
my $adrlen=$adrl/2;

### Warnung an Admin, falls beim nächsten Mal in Text fehlt !

open(ADRESSES,">$adressdb");
open(LOGBOOK,">>automatic/BACKUP/LOGBOOK");

for (my $z=0;$z<$adrlen;++$z)
{

if ($email[$z]=~ /\S\@.+?\..+/) { #ist eMail gültiges Format ?
$status=$stat[$z];
if ($stat[$z] ne "\n"){
if ($textnr[$stat[$z]] ne "\n"){
if ($stat[$z]<=$textnr[$stat[$z]]) { #ist Text für diesen Status da ?
if ($stat[$z]!=53) {
open(BODY,$bodyname[$stat[$z]]);
@body=<BODY>;

close(BODY);

$message = MIME::Lite->new(

From =>'$from',
To =>"$email[$z]",
Subject=>"$subject[$stat[$z]]",
Type =>'text/html',
Data =>"$header $body $footer",
);

$message->send;

#open(MAIL,"|$sendmail -t");
# print MAIL "From: $fromhead\n";
# print MAIL "To: $email[$z]\n";
# print MAIL "MIME-Version 1.0\n";
# print MAIL "Content-type:text/html; charset=iso8859-1\n";
# print MAIL "Subject:$subject[$stat[$z]]\n";
# print MAIL "@header\n";
# print MAIL "@body\n\n";
# print MAIL "@footer\n";#

#close(MAIL);

}
++ $status;
print LOGBOOK "BP 1 -- $email[$z] Text $status bekommen\n";
}
}}
if ($status==$texlen){
$warnflag='1';
}

print ADRESSES "$email[$z]$status\n";
}}
close(ADRESSES);
close(LOGBOOK);

system ("date >> automatic/BACKUP/headerlog" );
system ("cat automatic/header >> automatic/BACKUP/headerlog" );
system ("cp automatic/header-standard-leer automatic/header");

print "\n\n Mailversand ausgeführt\n\n\n\n\n";

### Warnung an Admin, falls beim nächsten Mal in Text fehlt !
if ($warnflag) {
open(MAIL,"|$sendmail -t");
print MAIL "From: EvaMailer\n";
print MAIL "To: $admin\n";
print MAIL "Subject:Warnung von Mailscript1 : Text reicht beim nächsten Versand nicht aus !\n";
print MAIL "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
print MAIL "WARNUNG von Mailscript :\nDer Text reicht für den nächsten Versand der Bibellese nicht aus\n";
print MAIL "Bitte neuen Text hinzufügen unter
<Verzeichnis>/$directory/text.db\n\n";
print MAIL "@footer\n";

close(MAIL);

}

Datum: 18.12.2006-15:57

Beitragre: Mailscript läuft nicht ? Wo ist der Fehler ?
Seitenanfang
Data =>"$header $body $footer",

sollte wohl besser so aussehen:

Data =>"@header @body @footer",

Datum: 25.12.2006-20:03

Beitragre: Mailscript läuft nicht ? Wo ist der Fehler ?
Seitenanfang
Danke, Lasse,

das war die Lösung.
Du hast mir SEHR geholfen !!!!!!

Gruß
Thomas

Datum: 26.12.2006-18:55

-






-
-