#!/usr/bin/perl -w use strict; use warnings; use CGI qw(:standard); use CGI::Carp qw/fatalsToBrowser/; use MIME::Lite; my $empfaenger = 'dubu@localhost'; my $sender = 'apache@localhost'; print header(); print start_html('Beispiel Datei empfangen und per Mail versenden'); print h1('Beispiel Datei empfangen und per Mail versenden'), p('Bitte eine Datei auswaehlen und mit dem Abschicken-Button hochschicken'), start_multipart_form(), "Dateiname:", filefield('filename','',45), submit('Submit','Abschicken'), endform; # Formulardaten bearbeiten, wenn vorhanden if (my $file = param('filename')) { my $tmpfile=tmpFileName($file); my $mimetype = uploadInfo($file)->{'Content-Type'} || ''; print hr(), h2("Dateiname: $file"), h4("abgelegt als: $tmpfile"), h4("MIME Type:",em($mimetype)); ## Date als Mail versenden # Erst der Mail-Header my $msg = MIME::Lite->new ( From => $sender, To => $empfaenger, Subject => "Datei $file", Type => 'multipart/mixed', ); # Dann der begleitende Text $msg->attach ( Type => 'TEXT', Data => "Hier die Datei, versendet durch den Webserver (PID $$)", ); # Dann das Attachment selber $msg->attach ( Type => $mimetype, Path => $tmpfile, Filename => $file, Disposition => 'attachment', ); # TEST-AUSGABE im Browser (Vorsicht bei grossen Dateien!) # print "
\n", $msg->as_string, "\n\n"; # Message senden (default: sendmail benutzen, siehe Doku) if ($msg->send()) { print p(qq{Datei $file an $empfaenger verschickt.}); } else { print p('Sorry, keine Moeglichkeit Mails zu versenden!'); } } print hr(), end_html;