从处理DATA事件的sub中:
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电话,它的工作正常(除了它不发送电子邮件)。
答案 0 :(得分:0)
此时,我通常会开始阅读源代码。看看N :: S :: M的第351行发生了什么,然后从那里继续。
另外,请查看邮件程序的日志。当程序试图传递邮件时可能出现问题 - 无论是本地邮件还是直接传送给远程收件人。