http://qs1969.pair.com?node_id=1227686

Arik123 has asked for the wisdom of the Perl Monks concerning the following question:

Does Email::MIME support attachments of files with utf8 filename?

My code crashed, and I think that may be the problem. Can anyone verify it?

EDIT:

I have a text file which is MIME-formatted (this is actually an email I got, and saved as a file. Never mind). The file itself is long, but I think the relevant part is:

--00000000000076fecc057dd5edea-- --00000000000076fece057dd5edec Content-Type: application/pdf; name="=?UTF-8?B?157Xmdec15kg15PXkNeR15X +Xqi5wZGY=?=" Content-Disposition: attachment; filename="=?UTF-8?B?157Xmdec15kg15PXk +NeR15XXqi5wZGY=?=" Content-Transfer-Encoding: base64 Content-ID: <167836db7a888894ca51> X-Attachment-Id: 167836db7a888894ca51

As you see, there's an attachment in the message, which happens to be a pdf file with non-ascii name. Now, my code is:

#!perl use Email::MIME; $file = shift || "g"; open G, $file; $g = join '', <G>; close G; $e = new Email::MIME ($g);

The code generated the following message:

Unquoted '"' not allowed at ./chfn.pl line 6.
Missing semicolon before parameter '"מילי דאבות.pdf"' at ./chfn.pl line 6.

The error is not fatal, that is, the code continues to run after generating this message. However I cannot extract the filename of the attachment using Email::MIME methods. Now, Consider this:

perl -pe 's/name=".*"/name="fn.pdf"/g' g >g2 ./chfn.pl g2

The result is no errors. I conclude that the problem is the non-ascii filename of the attachment. BTW ths OS is Linux, not Windows.

Thanks a lot!