Я следовал примерам Email :: Sender и Email :: MIME , и это выглядит хорошо, пока вы не попытаетесь открыть PDF. Тогда понятно, что он меньше по размеру, чем оригинал и как-то коррумпирован. Мой сценарий является более или менее шаблонной копией примеров, приведенных для целей тестирования, но я боюсь, что материал MIME на самом деле здесь не работает.
use strict;
use warnings;
use Data::Dumper;
use IO::All ;
use Email::Simple;
use Email::Simple::Creator;
use Email::MIME;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP;
# assemble the parts
my @parts = (
Email::MIME->create(
attributes => {
filename => "report.pdf",
content_type => "application/pdf",
encoding => "quoted-printable",
name => "report.pdf",
},
body => io("report.pdf")->all
),
Email::MIME->create(
attributes => {
content_type => "text/plain",
disposition => "attachment",
charset => "US-ASCII",
},
body => "Hello there!",
),
);
# assemble parts into email
my $email = Email::MIME->create(
header => [
To => 'me@you.com',
From => 'me@you..com',
Subject => "Thanks for all the fish ...",
],
parts => [@parts],
);
# standard modifications
$email->header_set( 'X-PoweredBy' => 'RT v3.0' );
# more advanced
# $_->encoding_set('base64') for $email->parts;
# send the email
my $transport = Email::Sender::Transport::SMTP->new({
host => 'mail.whatever.com',
# port => 2525,
sasl_username => 'webuser',
sasl_password => 's3cr3t',
timeout => 20,
});
sendmail( $email, { transport => $transport } );
Я использую Windows и Perl 5.12.1.0. Кажется, это не модуль IO :: All , но я думаю, что проблема где-то здесь. Кто-нибудь знает достаточно об этом материале, чтобы помочь мне исправить это?
Я пробовал двоичный режим, разные SMTP-серверы, разные PDF-файлы, и я не могу заставить эту чертову штуку работать вообще.