Perl Net :: SMTP внезапно отключается, когда / перед вызовом auth () - PullRequest
2 голосов
/ 05 марта 2020

У меня есть относительно простой Perl сценарий , которому будет дана строка json данных, проанализировать определенные c свойства и красиво распечатать остальные, обернуть все это по электронной почте и отправить его через мой почтовый сервер. Прошло два десятилетия с тех пор, как я написал Perl, но я вполне уверен, что мой код в порядке.

К сожалению, сценарий завершается неудачно, когда он отправляется для аутентификации в демоне postfix посредством отправки. Это на самом деле не перестает проверять подлинность. Из журналов постфиксов даже не пытается аутентифицироваться. После того, как сервер отвечает на второй EHLO (EHLO -> STARTTLS -> EHLO), сценарий, кажется, просто внезапно отключается. Есть ли какая-то хитрость в том, чтобы Net :: SMTP-аутентификация отсутствовала здесь?

В результате получается:

Net::SMTP>>> Net::SMTP(3.11)
Net::SMTP>>>   Net::Cmd(3.11)
Net::SMTP>>>     Exporter(5.73)
Net::SMTP>>>   IO::Socket::IP(0.39)
Net::SMTP>>>     IO::Socket(1.40)
Net::SMTP>>>       IO::Handle(1.40)
Net::SMTP=GLOB(0x55d6336b7108)<<< 220 mx.example.net ESMTP Postfix (Ubuntu)
Net::SMTP=GLOB(0x55d6336b7108)>>> EHLO tiphares.example.net
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-mx.example.net
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-PIPELINING
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-SIZE 10240000
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-ETRN
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-STARTTLS
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-8BITMIME
Net::SMTP=GLOB(0x55d6336b7108)<<< 250-DSN
Net::SMTP=GLOB(0x55d6336b7108)<<< 250 SMTPUTF8
Net::SMTP=GLOB(0x55d6336b7108)>>> STARTTLS
Net::SMTP=GLOB(0x55d6336b7108)<<< 220 2.0.0 Ready to start TLS
Net::SMTP::_SSL=GLOB(0x55d6336b7108)>>> EHLO tiphares.example.net
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-mx.example.net
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-PIPELINING
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-SIZE 10240000
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-ETRN
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-AUTH PLAIN LOGIN
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-8BITMIME
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250-DSN
Net::SMTP::_SSL=GLOB(0x55d6336b7108)<<< 250 SMTPUTF8
Can't Authenticate:
mx.example.net
PIPELINING
SIZE 10240000
ETRN
AUTH PLAIN LOGIN
ENHANCEDSTATUSCODES
8BITMIME
DSN
SMTPUTF8

SASL(0): successful result:  at /usr/local/sbin/suricata-alert-mail.pl line 134.

Стоит отметить, что другие почтовые клиенты (ie. Thunderbird) не имеет проблем с отправкой почты с использованием того же сервера и порта.

ОБНОВЛЕНИЕ: Я пришел к выводу, что с моим кодом все в порядке. Итак, как намекал Штеффен Ульрих в комментариях, я подозреваю, что это проблема моей среды.

Это мои установленные модули в соответствии с cpan -l.

...