Christian Schnagl: Mehrere Attachments mit PERL verschicken

Beitrag lesen

Hallo Forum,

im Archiv steht nur wie man eine Datei als Anhang verschicken kann. Dies funktioniert bei mir auch wunderbar.

Ich möchte aber 2 Dateien anhängen und kriegs einfach nicht hin. Der unten stehende Code ist der Teil des Scripts, der für den Versand zuständig ist. xxx steht für den Pfad, unter dem die Datei liegt. Die Dateien sind dort vorhanden. Wenn ich nun das Script aufrufe, wird nur $file2 angehängt. $file wird komplett ignoriert.

Was mache ich falsch? Ist die boundary an der falschen Stelle? Muß ich am Content-Type was ändern und wenn ja - was? Ist vielleicht bei EXE-Dateien etwas zu beachten?
Wie gesagt, sendmail (Linux RedHat) funktioniert, die Files existieren und liegen beide im selben Pfad.

Vielen Dank im Vorraus

Christian Schnagl

$file="datei.exe";
  $file2="datei.zip";

$attachedFile="/xxx/".$file;
  $attachedName=$file;
  $attachedFile="/xxx/".$file2;
  $attachedName=$file2;

$mimeprog='/usr/bin/mimencode';
  $boundary = "----=_NextPart";

@attachedFile = $mimeprog $attachedFile $attachedName;
  @attachedFile2 = $mimeprog $attachedFile2 $attachedName2;

$from="existierende.email@adresse.com";
  $to="existierende.email@adresse.com";

open(MAIL, "/usr/lib/sendmail -t") die "Content-type: text/text\n\nCan't open /usr/lib/sendmail!";
  print MAIL "To: $to\n";
  print MAIL "From: $from\n";
  print MAIL "Subject: Betreff\n";
  
  print MAIL "Content-Type: multipart/mixed;\n";
  print MAIL "        boundary="$boundary"\n\n";
  print MAIL "--$boundary\n";
  print MAIL "Content-Type: text/plain\n";
  print MAIL "        charset="iso-8859-1"\n";
  print MAIL "Content-Transfer-Encoding: 7bit\n\n";
  print MAIL "Anlagen: $attachedName\n\n";
  print MAIL "--$boundary\n";
  print MAIL "Content-Type: image/jpeg\n";
  print MAIL "        name="$attachedName"\n";
  print MAIL "Content-Transfer-Encoding: base64\n";
  print MAIL "Content-Disposition: attachment;\n";
  print MAIL "        filename="$attachedName"\n\n";
  print MAIL @attachedFile;
  print MAIL "\n\n";
  print MAIL "--$boundary\n";
  print MAIL "Content-Type: image/jpeg\n";
  print MAIL "        name="$attachedName2"\n";
  print MAIL "Content-Transfer-Encoding: base64\n";
  print MAIL "Content-Disposition: attachment;\n";
  print MAIL "        filename="$attachedName2"\n\n";
  print MAIL @attachedFile2;
  print MAIL "\n\n";
  print MAIL "--$boundary\n";
  close MAIL;