Depuis que j'ai mis à niveau mon PC de (k) ubuntu 12.04 à 12.10, je reçois ce message d'erreur lorsque j'essaie d'envoyer un e-mail en utilisant sendemail
.
L'installation d'une ancienne version de IO :: Socket :: SSL n'est pas une option. J'ai l'impression que tout fonctionne comme il se doit et le message n'est qu'un avertissement.
Comment puis-je me débarrasser de ce message?
SSL.pm
Je pense que ce qui suit a à voir avec le problème (/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;
sendemail
Et à la fin de sendemail, je pense que c'est à peu près ici dans le code:
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 }
Réponses:
Il existe un rapport de bogue sur le site Web de suivi des bogues de Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679911
Il indique également une solution de contournement:
spécifier
-o tls=no
en option sur la ligne de commande.Merci @Manolo Díaz sur debian.org.
la source
En fait, prenez simplement la valeur par défaut (supprimez le deuxième paramètre). Voir https://metacpan.org/pod/IO::Socket::SSL (recherchez SSL_version). La valeur par défaut est SSLv23:! SSLv3:! SSLv2.
J'ai modifié la ligne 1906 en v1.56 pour lire
(commentant simplement la ligne d'origine)
la source
Solution de contournement plus simple:
Remplacer:
Avec:
la source
Également une solution de contournement , faites cela s'il est nécessaire d'envoyer à partir de
smtp.gmail.com
:comme solution temporaire.
la source
Si vous obtenez toujours une erreur de certificat après avoir corrigé la version SSL comme indiqué ci-dessus, vous devez désactiver la vérification des certificats:
la source
fonctionne sur debian wheezy avec sendEmail 1.56-2 et libio-socket-ssl-perl 1.76-2 et
fonctionne avec… / IO / Socket / SSL.pm: 1,74 sendEmail: 1,56 dans Ubuntu.
Cela a été un problème dans les dépôts Ubuntu et Debian depuis plus d'un an.
la source
Pour résoudre ce problème, j'ai modifié sendEmail-v1.55 à la ligne 1884 pour remplacer «SSLv3 TLSv1» par «SSLv3».
OSX 10.10.1
la source
travaillé pour moi
la source