Коли я намагаюся надіслати електронне повідомлення за допомогою Net::SMTP::TLS
з сценарію perl я отримую нижче:
недійсна SSL_version вказана в /usr/local/share/perl5/IO/Socket/SSL.pm line 598
ОС: Linux
Ви знаєте, в чому проблема і що я повинен зробити, щоб виправити це?
Дякую!
Відповіді:
1 для відповіді № 1Net :: SMTP :: TLS не підтримується з 10 років і він порушується тим, що викликає саме ту помилку, яку ви описуєте. Якщо ви наполягаєте на використанні цього зламаного модуля, вам потрібно його виправити. Змінити код у рядку 182 видалити недійсні налаштування SSL_version:
if(not IO::Socket::SSL::socket_to_SSL($me->{sock},
- SSL_version => "SSLv3 TLSv1")){
+ )){
croak "Couldn"t start TLS: ".IO::Socket::SSL::errstr."n";
}
Замість використання зламаної та незміненої Net :: SMTP :: TLS або її наступника, але знову не підтримується Net :: SMTP :: TLS :: ButMaintained Я пропоную вам використовувати останню версію Net :: SMTP яка має вбудовану підтримку обох видів SMTP + SSL і для IPv6 теж. Він поставляється вже за замовчуванням з новими версіями Perl.
Якщо використання нового Net :: SMTP неможливе, ви можете використовувати його Net :: SSLGlue :: SMTP яка мавпа патчі старше Net :: SMTP версії, щоб додати підтримку SSL. І є також Net :: SMTPS яка забезпечує аналогічну функціональність.