我想運行一個腳本,需要一個文本文件,壓縮它使用Archive :: Zip,並通過使用電子郵件發送zip文件作爲附件通過smtp ::發件人創建一個MIME消息。與Perl電子郵件::發件人發送的Zip文件已損壞
我可以在perl中發送txt文件而不會損壞。我可以發送手動perl文件而不會損壞的文件。我無法通過perl發送手動壓縮文件。
我懷疑我的問題是讀取壓縮文件或創建MIME消息。下面是相關的代碼,它基本上是Email :: MIME的摘要中的代碼,其中$ fileToSend是壓縮文件的路徑。
任何想法?
use strict;
use warnings;
use Email::MIME;
use Email::Sender::Transport::SMTP;
use Email::Sender::Simple qw(sendmail);
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
use IO::All;
my $message =
Email::MIME->create(
header_str => [
From => $sender,
To => $recipient,
Subject => $subject,
],
attributes => {
filename => $filename,
content_type => 'application/zip',
disposition => 'attachment',
name => $filename,
},
body => io($fileToSend)->binary->all,
#body => io($fileToSend)->all,
);
什麼是發送和接收文件的區別? – Tim
收到的zip文件比發送的壓縮文件略小(822 kb比893 kb)。這就是爲什麼我懷疑io()成爲問題。 – Dodd10x
爲什麼這個複雜的方法,只是發送文件作爲附件? – netawater