then I ran it, and deleted the header... yes, I'm sure I should have used $message = $msg->body_as_string or something like that, but I didn't.#!/usr/bin/perl use MIME::Base64; use MIME::Lite; open FILE, "jpg/attachment-start.jpg"; while (read (FILE,$buf,45)) { $added .= encode_base64($buf); } open OUT1, ">blah1"; print OUT1 $added; close FILE; close OUT1; $msg = MIME::Lite->new(From => "me\@myhost.com", To => "blah\@blah.com", Type=> "image/jpg", Encoding =>"base64", Path => "jpg/attachment-start.jpg"); $message = $msg->as_string; open OUT2, ">blah2"; print OUT2 $message; close OUT2;
then i did the following. ~$ diff blah1 blah2
There was no output. It works for a file size of 35k. Perhaps your file is too short?
Update: I slept on it and remembered that I left something out. If you set the "paranoid" flag in MIME::Lite, it will use it's own encoding scheme instead of calling MIME::Base64:encode_base64, as it does default, so this kind of behavior is really strange. The only difference in the way you are calling it and the way MIME::Lite calls it is that it calls it with a buffer size of (read (FH,$buf,45)) rather than (read (FH,$buf,1024)). So I stand by my earlier post... try setting the buffer size to 57*1.
In reply to RE: RE: RE: about MIME::Base64
by tenatious
in thread about MIME::Base64
by Delfer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |