fehler im script (perl)

Bash, Shell, PHP, Python, Perl, CGI
conym18
Posts: 137
Joined: 2003-01-21 12:41

fehler im script (perl)

Post by conym18 »

hi,

ich habe ein problem.

wenn ich mit folgendem perl script einen newsletter an alle emails aus der datenbank schicken will, nimmt er immer bloß 56 aus der datenbank.

in den datenbankzeilen (54-59) ist nirgends ein fehler drin.

wer hat hilfe?

Code: Select all

#!/usr/bin/perl -w


#use strict;
#use cgi;
#####Modul fuer Datenbankanbindung####
use DBI;

#####Datenbankname, Tabelle, Spalte, User, Password, Mailprogramm####
$dbname="irgendeine";
$table="irgendeine";
$column="email";
#$column1="user";
$user="meinuser";
$passwd="meinpass";
$mailprog="/usr/sbin/sendmail";
$i=0;

#####Datenbank Konnektierung####
$dbh=DBI->connect("DBI:mysql:$dbname", $user, $passwd) ||  die "Kann keine Verbindung zum MySQL-Server aufbauen: $DBI::errstrn";

#####Datenbankabfrage####
$sth=$dbh->prepare("select $column from $table");

#####Ausfuehrung der Anfrage####
$sth->execute || die "Kann Abfrage nicht ausführen: $DBI::errstrn";

##### Ergebnis in Array @mail schreiben####
while($mails = $sth->fetchrow_array()){
	$mail[$i]=$mails."n";
	$i++
}

#$i=0;
#####Datenbankabfrage####
#$sth=$dbh->prepare("select $column1  from $table");

#####Ausfuehrung der Anfrage####
#$sth->execute || die "Kann Abfrage nicht ausführen: $DBI::errstrn";

##### Ergebnis in Array @mail schreiben####
#while($name = $sth->fetchrow_array()){
#	$namen[$i]=$name."n";
#	$i++
#}

#####Datenbankverbindung trennen####
$sth->finish;
$dbh->disconnect;


#####Ã?berprüfung auf @ in mailaddresse####
$j=0;
foreach(@mail){
	if( $_ =~ /@/ ) {
		$newmail[$j] = $_;
		$j++;
	}
}


#####Laenge des Arrays####
$laenge=@newmail;

#####Versenden der Mails####
#for ($i=0;$i<=$laenge-1;$i++){
#To: #$newmail[$i]
#print MAIL "Hallo $namen[$i]nn";

for ($i=0;$i<=0;$i++){
	open(MAIL,"|$mailprog -t") || die "Kann nicht öffnen $mailprog!n";
	print MAIL "To: xx@xx.xxn";
	print MAIL "From: xx.xx.xx<xx@xx.xx>n";
	print MAIL "Subject: Newsletternn";
	print MAIL "Hallo usernn";
	print MAIL "___________________n";
	print MAIL "xx see youn";
	close(MAIL);
	$a=$i+1;
	print "done $a von $laengen";
}

oder liegt es an einer config?

danke

conrad
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: fehler im script (perl)

Post by conym18 »

sorry,

hab den fehler raus.

lag am server

*g*
conym18
Posts: 137
Joined: 2003-01-21 12:41

Re: fehler im script (perl)

Post by conym18 »

wie kann ich jetzt aber HTML mails verschicken z.B. mit hintergrundfarbe oder so?

danke

conrad
User avatar
Joe User
Project Manager
Project Manager
Posts: 11173
Joined: 2003-02-27 01:00
Location: Hamburg

Re: fehler im script (perl)

Post by Joe User »

conym18 wrote:wie kann ich jetzt aber HTML mails verschicken z.B. mit hintergrundfarbe oder so?
*räusper* Wozu?
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: fehler im script (perl)

Post by wgot »

Hallo,

indem Du eine vollwertige HTML-Mail mit allen Fummeleien (multipart/alternative, boundary usw) reinbaust.

Wenn Du die Welt unbedingt damit beglücken willst - Schluck! :x - , such Dir ein fertiges Script. Es geht um mehr als ein paar Zeilen.

Gruß, Wolfgang
pedä
Posts: 51
Joined: 2002-08-13 19:30

Re: fehler im script (perl)

Post by pedä »

wgot wrote:Hallo,

indem Du eine vollwertige HTML-Mail mit allen Fummeleien (multipart/alternative, boundary usw) reinbaust.

Wenn Du die Welt unbedingt damit beglücken willst - Schluck! :x - , such Dir ein fertiges Script. Es geht um mehr als ein paar Zeilen.

Gruß, Wolfgang

die einfachste möglichkeit ist, das ganze teil mit MIME::Lite zu erstellen..
da brauchst dir dann nicht ganz so dolle den kopf zerbrechen..

tipp am rande: bitte keine connects zu datenbanken (mit passwd usw) direkt in den sourcecode schreiben! immer in extra datei und diese mit require einbinden.
am besten die einzubindende datei ausserhalb des vom web erreichbaren bereiches platzieren!

sollte der server einmal miss-konfiguriert sein, und der quelltext angezeigt werden, anstatt ausgeführt (geht schnell, ich weiß es.. :)), dann haben deine besucher wenigstens nicht die passwörter zu deinen datenbanken.. hihi

weiterhin viel spaß
pedä