Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > отправка почты с помощью модуля Email::Sender


Автор: ll75 6.3.2017, 14:56
Ранне для отправки почты в скрипте использовался модуль Mail::Sender с таким блоком:
Код

$Mail::Sender::NO_X_MAILER = 1;
my $sender = new Mail::Sender({%smtp_connection});
$sender->Open({%mail});
$sender->SendLineEnc($body);
$sender->Close() or $logger->error("Failed to send vacation response: "         . $sender->{'error_msg'});
$logger->debug("Vacation response sent to $to, from $from");
}


но теперь при запуске скрипта perl ругается, что модуль deprecated (наверное устарел) и надо исп-ть модуль Email::Sender.
Помогите плз составить аналогичный блок, но для модуля Email::Sender. На CPAN такой пример исп-ия:
Код

my $message = Email::MIME->create( ... );
# produce an Email::Abstract compatible message object,
# e.g. produced by Email::Simple, Email::MIME, Email::Stuff
 
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP qw();
use Try::Tiny;
 
try {
  sendmail(
    $message,
    {
      from => $SMTP_ENVELOPE_FROM_ADDRESS,
      transport => Email::Sender::Transport::SMTP->new({
          host => $SMTP_HOSTNAME,
          port => $SMTP_PORT,
      })
    }
  );
} catch {
    warn "sending failed: $_";
};

Автор: arto 6.3.2017, 16:12
perldoc Email::Sender::Manual::QuickStart не помогает?

Автор: ll75 6.3.2017, 17:22
Цитата(arto @ 6.3.2017,  16:12)
perldoc Email::Sender::Manual::QuickStart не помогает?


ещё не читал 8-)
а может возможность принудительно указать использовать старый модуль Mail::Sender, хоть он и deprecated?

Автор: arto 7.3.2017, 08:10
удалите warnings::warnif('deprecated', 'Mail::Sender is deprecated and you should look to Email::Sender instead'); из Mail/Sender.pm,
но это плохая идея.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)