Seit ich meinen PC von (k) ubuntu 12.04 auf 12.10 aktualisiert habe, erhalte ich diese Fehlermeldung, wenn ich versuche, eine E-Mail mit zu senden sendemail
.
Die Installation einer älteren Version von IO :: Socket :: SSL ist keine Option. Ich habe den Eindruck, dass alles so funktioniert, wie es sollte, und die Nachricht ist nur eine Warnung.
Wie kann ich diese Nachricht entfernen?
SSL.pm
Ich denke, das Folgende hat mit dem Problem zu tun (/usr/share/perl5/IO/Socket/SSL.pm).
34 use constant DEFAULT_VERSION => 'SSLv23:!SSLv2';
...
251 my %default_args = (
252 Proto => 'tcp',
253 SSL_server => $is_server,
254 SSL_use_cert => $is_server,
255 SSL_check_crl => 0,
256 SSL_version => DEFAULT_VERSION,
257 SSL_verify_mode => SSL_VERIFY_NONE,
258 SSL_verify_callback => undef,
259 SSL_verifycn_scheme => undef, # don't verify cn
260 SSL_verifycn_name => undef, # use from PeerAddr/PeerHost
261 SSL_npn_protocols => undef, # meaning depends whether on server or client side
262 SSL_honor_cipher_order => 0, # client order gets preference
263 );
...
332 ${*$self}{'_SSL_ctx'} = IO::Socket::SSL::SSL_Context->new($arg_hash) || return;
E-Mail senden
Und am Ende der Sendemail denke ich, dass es hier im Code ungefähr so ist:
1903 ## Start TLS if possible
1904 if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
1905 printmsg("DEBUG => Starting TLS", 2);
1906 if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
1907 if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {
1908 quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
1909 }
1910 printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);
1911 printmsg("DEBUG => TLS session initialized :)", 1);
1912
1913 ## Restart our SMTP session
1914 if (SMTPchat('EHLO ' . $opt{'fqdn'})) { quit($conf{'error'}, 1); }
1915 }
1916 elsif ($opt{'tls'} eq 'yes' and $conf{'tls_server'} == 0) {
1917 quit("ERROR => TLS not possible! Remote SMTP server, $conf{'server'}, does not support it.", 1);
1918 }
Antworten:
Es gibt einen Fehlerbericht auf Debians Bug-Tracker-Website: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679911
Es gibt auch eine Problemumgehung:
Geben Sie
-o tls=no
als Option in der Befehlszeile an.Danke @Manolo Díaz auf debian.org.
quelle
Nehmen Sie einfach die Standardeinstellung (entfernen Sie den zweiten Parameter). Siehe https://metacpan.org/pod/IO::Socket::SSL (Suche nach SSL_version). Der Standardwert ist SSLv23 :! SSLv3 :! SSLv2.
Ich habe Zeile 1906 in Version 1.56 geändert, um sie zu lesen
(nur die ursprüngliche Zeile auskommentieren)
quelle
Einfachere Problemumgehung ist:
Ersetzen:
Mit:
quelle
Führen Sie dies auch aus, wenn Sie Folgendes senden möchten
smtp.gmail.com
:als vorübergehende Lösung.
quelle
Wenn nach dem Beheben der SSL-Version wie oben gezeigt immer noch ein Zertifikatfehler angezeigt wird, müssen Sie die Zertifikatprüfung deaktivieren:
quelle
funktioniert auf debian wheezy mit sendEmail 1.56-2 und libio-socket-ssl-perl 1.76-2 und
funktioniert mit… / IO / Socket / SSL.pm: 1.74 sendEmail: 1.56 in Ubuntu.
Dies ist seit über einem Jahr ein Problem bei Ubuntu- und Debian-Repos.
quelle
Um dies zu beheben, habe ich sendEmail-v1.55 in Zeile 1884 bearbeitet, um 'SSLv3 TLSv1' in 'SSLv3' zu ändern.
OSX 10.10.1
quelle
arbeitete für mich
quelle