我在perl通过SMTP发送电子邮件。该电子邮件包含一些表格,链接和列表。 我正在使用html格式数据。
$smtp->data();
$smtp->datasend("MIME-Version: 1.0\nContent-Type: text/html; charset=UTF-8 \n\n<H1>");
$smtp->datasend("$message");
...
$smtp->dataend();
$smtp->quit;
有时,1mb
附近的电子邮件大小过大。有没有什么办法可以减少电子邮件的大小而不减少数据量。我不希望邮件作为附件。我用outlook打开邮件。
答案 0 :(得分:0)
您应该使用Mail::Sender通过电子邮件发送附件
#!/usr/bin/perl
use Mail::Sender
$to = 'email1@example1.com,email2@example2.com';
$sender =new Mail::Sender {
smtp => 'smtp.mailserver.com',
from => 'script@somedomain.com,
});
$subject = 'This is a Test Email';
$sender->OpenMultipart({
to => "$to",
subject => "$subject",
});
$sender->Body;
$sender->SendLineEnc("Test line 1");
$sender->SendLineEnc("Test line 2");
$sender->Attach({
description => 'Test file',
ctype => 'application/x-zip-encoded',
encoding => 'Base64',
disposition => 'attachment;
filename="File.zip"; type="ZIP archive"',
file => "$file",
});
$sender->Close();
exit();
或使用MIME :: Lite
use MIME::Lite;
$msg = MIME::Lite->new (
From => $from_address,
To => $to_address,
Subject => $subject,
Type =>'multipart/mixed'
) or die "$!\n";
### Add the ZIP file
$msg->attach (
Type => 'application/zip',
Path => $my_file_zip,
Filename => $your_file_zip,
Disposition => 'attachment'
) or die "Error adding $file_zip: $!\n";
### Send the Message
$msg->send('smtp', $mail_host, Timeout=>60);