User since
2004-08-07
13
Artikel
BenutzerIn
Bestimmt gibt es irgendeinen schlauen Verweis dazu:
wie sende ich ein Attachment mit Sendmail?
Es geht um ein "einfaches" JPG-Bild, das ich mit der Schaltfläche:
<input type="file" name="file" size="39">
hochlade, dessen Name anschliessend mit param('file') eingelesen wird.
Das Beispiel von Bertram auf der FAQ-PERL-COMMUNITY unter Verwendung von "MIMIE::Base64" läuft leider nicht!
User since
2003-08-08
2561
Artikel
HausmeisterIn
Hallo soilant und Willkommen hier auf Perl-Community.de!
Vielleicht hilft dir der Artikel, den ich mal geschrieben habe weiter:
Attachments mit Sendmail
Gruß, Erik!
s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}
It's not a bug, it's a feature! - [CGI-World.de]
User since
2004-08-07
13
Artikel
BenutzerIn
Danke für Deinen Tip, aber eben: er funktioniert NICHT.
Es wird ein leeres Mail gesendet, bei dem sogar der "reguläre" Text erst im Quelltext ersichtlich wird.
?!
Gruss
soilant
User since
2003-08-04
12208
Artikel
Admin1
[quote=soilant,07.08.2004, 15:43]
Das Beispiel von Bertram auf der FAQ-PERL-COMMUNITY unter Verwendung von "MIMIE::Base64" läuft leider nicht![/quote]
http://wiki.perl-community.de/bin....rtNicht
Hallo Esskar,
den Code posten? Aber klar, der Code ist dieser - bin ziemlich gespannt wieso das nicht klappt... (es ist praktisch der gleiche Code wie jener von E|B)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
...
$file = param('file');
...
$boundary = "------";
local $/;
binmode $file;
$encoded_file = MIME::Base64::encode($file);
open(MAIL, "| /usr/sbin/sendmail -n -t -oi") or die "Oh hoppala!";
print MAIL <<EOA;
From: $from
To: $to
Cc: $bc
Bcc: $bcc
Subject: $subject
Mime-Version: 1.0
Content-type: multipart/mixed; boundary="$boundary"
$boundary
Content-type: text/plain; charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable
$text
$boundary
Content-type: image/jpeg; name="$file"
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="$file"
$encoded_file
$boundary
EOA
close(MAIL);
User since
2004-08-07
13
Artikel
BenutzerIn
hoppla, ich dachte ich sei noch eingeloggt - jedenfalls: der obige code ist von mir.
gruss
soilant
User since
2003-08-04
7321
Artikel
ModeratorIn
naja...
eb's code ist anders :)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$boundary = "----=_Boundary-000-9e78db45-c799-4775-968b-1170dea96a64";
print MAIL <<EOA;
From: $from
To: $to
Cc: $bc
Subject: $subject
Mime-Version: 1.0
Content-type: multipart/mixed; boundary="$boundary"
--$boundary
Content-type: text/plain; charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable
$text
--$boundary
Content-type: image/jpeg; name="$file"
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="$file"
$encoded_file
--$boundary--
.
EOA
wie sieht denn deine form zum hochladen der datei aus?
benutzt du enctype="multipart/form-data" ?
User since
2004-08-07
13
Artikel
BenutzerIn
Aha, Du meinst also es liegt nur an der Generierung der "boundary"?
Meine Form ist recht einfach:
Ein Form-Tag mit "enctype=multipart/form-data",
dann ein Textarea-Feld mit dem Text
und ein Input-Feld "input type='file' name='file'",
Ende Form.
Hmmm...
Wie gesagt: es wird ein Mail versendet, aber das kommt leer an, im Quelltext steht dann alles genau so wie im Script, nur ist kein Anhang da und kein Text offen ersichtlich.
Der gleiche Code klappt und ein einfaches Mail wird versendet sobald ich alles weglasse was mit dem "Attachment" zu tun hat.
User since
2003-08-04
7321
Artikel
ModeratorIn
ich wollte auf die fehlenden leerzeilen in deinem code hinaus