Hallo und Danke für den Tipp,
ich habe das Skript einmal angepasst, s. unten.
Es macht leider keinen Mucks.
No Mail - no fun.
Kann jemsnd das Prob sehen?
Danke und Grüße Bernd
============
if ($send eq "send")
{
$pdf=get "http://de3.xxxxxxx.de/cgi-bin/baseportal.pl?htx=/xxxxxxx.de/xxx/pdf&Id=$Id&Bild=$Bild";
$subject="Subjekt der Mail";
$text="tralalalala";
$html="";
$mail4="bbb@mmm.de";
$name4="bb mm";
$mail5="aaa@cc.de";
$name5="aaa ccc";
$type="application/pdf";
# #############################################################################
# Versenden vom eMails
#
# Öffentliche Methoden:
# --------------------
# new - als Konstruktor
# sunject - Subject hinzufügen
# addRecipient - Empfänger hinzufügen
# setSender - Absender hinzufügen
# setText - Textausgabe der Email einfügen
# setHTML - html-teil der Email einfügen
# copyto - cc-empfänger hinzuügen
# blindcopy - bcc-empfänger hinzufügen
# attachmentByFile - Einen Anhang von einer Website einfügen
# attachmentByData - Anhnag von Rohdaten
# submit - absenden
# #############################################################################
package sendmail;
# #############################################################################
# Konstruktor der Klasse
# #############################################################################
sub new {
my $this = shift;
my $Referenz = {};
bless($Referenz,$this);
$this->{charset} = "iso-8859-1";
return($Referenz);
}
#############################################################################
# Setzen des charsets.
# #############################################################################
sub charset{
my ($this,$charset)=@_;
if ($charset){
$this->{charset}=$charset;
}
}
#############################################################################
# Setzen der Betreffzeile der Mail auf dem übergebenen String $subject.
# #############################################################################
sub subject{
my ($this,$subject)=@_;
# Betreff der Mail
$this->{subject} = $subject;
}
# #############################################################################
# Hinzufügen eines Mailempfängers $email und seinem Namen $name.
# Die eMail-Addresse und der Empfängername werden zusammengefasst und
# das interne Array, das alle Empfänger behinhaltet, wird um einen Schlüssel
# erweitert.
# #############################################################################
sub addRecipient{
my ($this,$Mail1,$Name1)=@_;
## $Mail1 und $Name kommen von einer Formulareingabe, sie können an dieser Stelle per "out" angezeugt werden, sind also da##
if ($Name1 ne ''){
$email = "$Name1 <$Mail1>";
}
push @{$this->{mailTo}}, $email;
}
# #############################################################################
# Setzen der Absenderaddresse $email und des Namens $name.
# #############################################################################
sub setSender{
my ($this,$Mail2,$team)=@_;
# Absender festlegen
$this->{from_email} = $Mail2;
$this->{from_name} = $team;
}
##siehe oben: Formular...#
# ###################
# Textinhalt der Mail
# ###################
sub setText{
my ($this,$text)=@_;
$this->{plaintext} = $text;
}
# ####################
# HTML-Inhalt der Mail
# ####################
sub setHTML{
my ($this,$html)=@_;
$this->{htmltext} = $html;
$this->{useHTML} = 1;
}
# ###############################################################
# Kopie-Empfänger Name und eMail, es wir hier ein Array bebildet,
# so das hier mit jeden Aufruf ein zusätzlicher Emfänger
# angelegt wird
# ###############################################################
sub copyto{
my ($this,$email,$name)=@_;
# Namen und Empfänger der Mail zusammenfassen
if ($name ne ''){
$email = "$name <$email>";
}
# Kopie-Empfänger auf die Liste setzen
push @{$this->{copyTo}},$email;
}
# ####################################################################
# Blindkopie-Empfänger Name und eMail, es wir hier ein Array bebildet,
# so das hier mit jeden Aufruf ein zusätzlicher Emfänger
# angelegt wird
# ####################################################################
sub blindcopy{
my ($this,$Mail1,$team)=@_;
# Namen und Empfänger der Mail zusammenfassen
if ($team ne ''){
$email = "$team <$Mail1>";
}
# Kopie-Empfänger auf die Liste setzen
push @{$this->{blindcopy}},$email;
}
sub blindcopy{
my ($this,$mail4,$name4)=@_;
# Namen und Empfänger der Mail zusammenfassen
if ($name4 ne ''){
$email = "$name4 <$mail4>";
}
# Kopie-Empfänger auf die Liste setzen
push @{$this->{blindcopy}},$email;
}
sub blindcopy{
my ($this,$mail5,$name5)=@_;
# Namen und Empfänger der Mail zusammenfassen
if ($name5 ne ''){
$email = "$name5 <$email5>";
}
# Kopie-Empfänger auf die Liste setzen
push @{$this->{blindcopy}},$email;
}
# ##################################################
# Dateianhang aus Datei einfügen
# $name : Name, mit dem der Anhang versandt wird
# $type : Inhaltstyp des Anhanges
# $host: Quelle im Internet
# ##################################################
sub attachmentByFile{
my($this,$name,$type,$host)=@_;
# Datei holen
my $data=main::get $host;
# Array für die Anhänge aufbauen
push @{$this->{attachment}{name}},$Name;
push @{$this->{attachment}{type}},$type;
push @{$this->{attachment}{data}},$this->base64($data);
# Flag für die Anhänge
$this->{flgAttachments} = 1;
}
# ##################################################
# Dateianhang aus Daten einfügen
# $name : Name, mit dem der Anhang versandt wird
# $type : Inhaltstyp des Anhanges
# $data: Rohdaten des Anhangs
# ##################################################
sub attachmentByData{
my($this,$Name,$type,$data)=@_;
# Array für die Anhänge aufbauen
push @{$this->{attachment}{name}},$Name;
push @{$this->{attachment}{type}},$type;
push @{$this->{attachment}{data}},$this->base64($pdf);
# Flag für die Anhänge
$this->{flgAttachments} = 1;
}
# #################
# Absenden der Mail
# #################
sub submit{
my $this=shift;
my ($bound,$content,$type,$boundary);
# Empfänger zusammenfassen
$this->{mailTo} = join ",",@{$this->{mailTo}};
# Kopf der Nachricht zusammensetzen
$this->buildMailHeader();
# Behandlung von Text und HTML-Teils der Mail
if ($this->{useHTML}){
# Trennzeichen
$bound = $this->boundary;
# Inhalt der Mail zusammensetzen
$content = $this->parsePlainText($bound).$this->parseHTML($bound);
# Inhaltsangabe für header
$type = "Content-Type: multipart/alternative; boundary=\"$bound\"";
} else {
# Inhalt ist der Text
$content = $this->{plaintext};
}
# Keine Attachments vorhanden
if (!$this->{flgAttachments}){
# mit HTML-Teil
if ($this->{useHTML}){
# Kopfzeilen vor dem Versand erweitern
$this->{mailheader} .= $type;
}
# Rückgabewert des Mailprogrammes
main::mail $this->{mailTo},$this->{subject},$content,$this->{from_email},'',$this->{from_name},'','',$this->{mailheader};
return;
}
# Versand mit Attachments
# Trennzeichen erzeugen
$boundary = $this->boundary;
# HTML/Text-Teile der Nachricht
if ($this->{useHTML}){
# Mit HTML,
$content = "--$boundary\n$type\n\n\n$content\n--$bound--\n\n";
} else {
# ohne HTML
$content = $this->parsePlainText($boundary);
}
# Hinweis auf Multipart-Nachricht
$content = "This is a multi-part message in MIME format.\n\n$content";
# Inhaltsangabe für Header
$type = "Content-Type: multipart/mixed; boundary=\"$boundary\"";
# Attachements anhängen
$content .= $this->parseAttachments($boundary);
# Kopfzeilen vor dem Versand erweitern
$this->{mailheader} .= $type;
# Rückgabewert des Mailprogrammes
main::mail $this->{mailTo},$this->{subject},$content,$this->{from_email},'',$this->{from_name},'','',$this->{mailheader};
return;
}
}
</perl>