Я написал эту функцию некоторое время назад, и она работает отлично.
Это требует модуль MIME :: Lite должен быть установлен на вашей системе - не уверен, если это будет камнем преткновения (это, конечно, был на моем месте)
Извинения, если код не соответствует последним стандартов, ему около 3 лет и работает на Perl 5.6.1. Я считаю.
sub emailer($$$$$$;$);
use MIME::Lite;
sub emailer($$$$$$;$)
{
#-------------------------------------------------------------------------#
# Get incoming parameters #
#-------------------------------------------------------------------------#
my ($exchange_svr, $to, $cc, $from, $subject, $message, $attachment) = @_;
#-------------------------------------------------------------------------#
# create a new message to be sent in HTML format #
#-------------------------------------------------------------------------#
my $msg = MIME::Lite->new(
From => $from,
To => $to,
Cc => $cc,
Subject => $subject,
Type => 'text/html',
Data => $message
);
#-------------------------------------------------------------------------#
# Check if there is an attachment and that the file actually does exist #
# Only plain text documents are supported in this functioN. #
#-------------------------------------------------------------------------#
if ($attachment)
{
#---------------------------------------------------------------------#
# if the attachment does not exist then show a warning #
# The email will arrive with no attachment #
#---------------------------------------------------------------------#
if (! -f $attachment)
{
print "WARNING - Unable to locate $attachment";
}
else
{
#-----------------------------------------------------------------#
# add the attachment #
#-----------------------------------------------------------------#
print "ATTACH", "$attachment";
$msg->attach(
Type => "text/plain",
Path => $attachment,
Disposition => "attachment"
);
}
}
#-------------------------------------------------------------------------#
# send the email #
#-------------------------------------------------------------------------#
MIME::Lite->send('smtp', $exch_svr, Timeout => 20);
$msg->send() or die "SENDMAIL ERROR - Error sending email";
}
Похоже, это когда она используется
emailer($exchange_server,
"[email protected]",
"[email protected]",
"[email protected]",
"Subject in here",
"The Message in here",
"/full/path/to/attachment");
При желании вы можете добавить 7-й параметр, который является вложение (необходимо указать полный путь) и приложение должно быть текстовый файл (Я посылаю файл CSV)
EDIT
Я просто перечитайте свой пост и увидел, что вы хотите отправить вложение, поэтому я добавил, что часть к примеру
Perl может отправить почту, если это отвечает на ваш вопрос. –
Как я могу отправить журнал по электронной почте? – Jill448
Используя некоторые модули, http://stackoverflow.com/q/2530154/223226 –