0

DATA イベントを処理するサブ内から:

my $email = Email::Simple->create(
    header => [
      To      => $recipient,
      From    => $sender,
      Subject => $subject,
    ],
    body => $body,
);
sendmail($email);

テストをしようとすると、サーバーに telnet して DATA にアクセスし、. (このイベントを発生させます)私はこれを取得します:

at /usr/local/share/perl5/Net/Server/Mail.pm line 351, <GEN1> line 6.
    Net::Server::Mail::callback('Net::Server::Mail::ESMTP=HASH(0x3a06288)', 'DATA', 'SCALAR(0x3ae0b58)') called at /usr/local/share/perl5/Net/Server/Mail.pm line 233
    Net::Server::Mail::make_event('Net::Server::Mail::ESMTP=HASH(0x3a06288)', 'name', 'DATA', 'arguments', 'ARRAY(0x3ae0df8)', 'success_reply', 'ARRAY(0x3ae0f90)') called at /usr/local/share/perl5/Net/Server/Mail/SMTP.pm line 644
    Net::Server::Mail::SMTP::data_finished('Net::Server::Mail::ESMTP=HASH(0x3a06288)', '') called at /usr/local/share/perl5/Net/Server/Mail/SMTP.pm line 618
    Net::Server::Mail::SMTP::data_part('Net::Server::Mail::ESMTP=HASH(0x3a06288)', '.\x{d}\x{a}') called at /usr/local/share/perl5/Net/Server/Mail.pm line 443
    Net::Server::Mail::tell_next_input_method('Net::Server::Mail::ESMTP=HASH(0x3a06288)', '.\x{d}\x{a}') called at /usr/local/share/perl5/Net/Server/Mail.pm line 516
    Net::Server::Mail::process('Net::Server::Mail::ESMTP=HASH(0x3a06288)') called at /path/to/mail_server.pl line 47

sendmail 呼び出しを削除すると、正常に動作します (電子メールが送信されない場合を除く)。

4

1 に答える 1

0

この時点で、通常はソース コードを読み始めます。N::S::M の 351 行目で何が起こっているかを確認し、そこから先に進みます。

また、メーラーのログを見てください。プログラムがメールをローカルに配信しようとしたとき、またはリモートの受信者に直接配信しようとしたときに、何か問題が発生した可能性があります。

于 2012-12-13T04:32:11.873 に答える