У меня есть относительно простой 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
.