Karena saya memutakhirkan PC saya dari (k) ubuntu 12.04 menjadi 12.10 saya menerima pesan kesalahan ini ketika mencoba mengirim email menggunakan sendemail
.
Menginstal versi IO :: Socket :: SSL yang lebih lama bukanlah suatu opsi. Saya mendapat kesan bahwa semua berfungsi sebagaimana mestinya dan pesannya hanyalah peringatan.
Bagaimana saya bisa menghilangkan pesan ini?
SSL.pm
Saya pikir di bawah ini ada hubungannya dengan masalah (/ 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;
mengirim email
Dan pada akhir sendemail saya pikir ini tentang kode ini:
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 }
Jawaban:
Ada laporan bug di situs pelacak bug Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=679911
Ini juga menyatakan solusi:
tentukan
-o tls=no
sebagai opsi pada baris perintah.Terima kasih @Manolo Díaz di debian.org.
sumber
Sebenarnya, ambil saja default (hapus parameter kedua). Lihat https://metacpan.org/pod/IO::Socket::SSL (cari SSL_version). Standarnya adalah SSLv23:! SSLv3:! SSLv2.
Saya memodifikasi baris 1906 di v1.56 untuk dibaca
(hanya mengomentari baris asli)
sumber
Solusi yang lebih mudah adalah:
Menggantikan:
Dengan:
sumber
Juga solusinya , lakukan ini jika diminta untuk mengirim dari
smtp.gmail.com
:sebagai solusi sementara.
sumber
Jika Anda masih mendapatkan kesalahan sertifikat setelah memperbaiki versi SSL seperti yang ditunjukkan di atas, Anda perlu menonaktifkan pemeriksaan sertifikat:
sumber
bekerja pada debian wheezy dengan sendEmail 1.56-2 dan libio-socket-ssl-perl 1.76-2 dan
bekerja dengan ... / IO / Socket / SSL.pm: 1.74 sendEmail: 1.56 di Ubuntu.
Ini merupakan masalah di repositori ubuntu dan debian selama lebih dari setahun.
sumber
Untuk memperbaikinya, saya mengedit sendEmail-v1.55 pada baris 1884 untuk mengubah 'SSLv3 TLSv1' menjadi 'SSLv3'.
OSX 10.10.1
sumber
bekerja untukku
sumber