Rumah php教程 php手册 PHPMailer发送邮件报错Msg:stream_socket_enable_crypto():

PHPMailer发送邮件报错Msg:stream_socket_enable_crypto():

May 25, 2016 pm 04:49 PM
phpmailer Hantar e-mel Laporkan ralat

今天在本机测试好的phpmailer邮箱发送功能没有问题,本地是windows apache php环境但在了linux中发送邮件就出现了Msg:stream_socket_enable_crypto(): this stream does not support SSL/crypto错误了,后来我分析了N久得出一办法,下面分享给各位朋友。

我的PHPMailer发送邮件代码

header("Content-type:text/html;charset=utf-8");  
include('phpmailer/class.phpmailer.php');  
include('phpmailer/class.smtp.php');  
$mail = new PHPMailer();    
$mail->IsSMTP();                                      // set mailer to use SMTP    
$mail->Host = "smtp.sohu.com";  // SMTP服务器    
$mail->Port = 25;  
$mail->SMTPAuth = true;     // SMTP认证?    
$mail->Username = "yourmail@sohu.com";  // 用户名    
$mail->Password = "yourmail168"; // 密码    
$mail->From = "spr_zsql@163.com"; //发件人地址    
$mail->FromName = "test"; //发件人    
$mail->AddAddress("yourmail@qq.com", "test"); //收件人地址,收件人名称  
$mail->WordWrap = 50;                                 //     
//$mail->AddAttachment("/var/tmp/file.tar.gz");         // 附件    
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // 附件,新文件名    
$mail->IsHTML(true);                                  // HTML格式    
$mail->Subject    = "测试";  
$mail->Body       = "测试";  
 
if(!$mail->Send())  
{  
echo "Mailer Error: " . $mail->ErrorInfo;  
echo "发送邮件错误!";  
}else{  
echo "邮件发送成功!";  
}
Salin selepas log masuk

在使用PHPMailer发送邮件报错Msg:stream_socket_enable_crypto(): this stream does not support SSL/crypto,出现这种情况请输出phpinfo()看下openssl这个扩展没有安装,查找php安装时源码包的位置以/usr/local/src/php/php-5.3为例子,代码如下:

cd  /usr/local/src/php/php-5.3/ext/openssl

/usr/local/php/bin/phpize

可能会出现下面的错误,代码如下:

Cannot find config.m4.

Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

解决办法,代码如下:

mv config0.m4 config.m4

/usr/local/php/bin/phpize

./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config

make && make install安装成功后会有以下提示

Build complete.

Don't forget to run 'make test'.

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ 改目录下回生成一个openssl.so文件,找到php的配置文件,在扩展区域添加如下代码:

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/openssl.so

ps -ef | grep php-fpm  | grep -v grep | awk '{print $2}'|xargs kill -9

/usr/local/php/sbin/php-fpm

如果你配置了还不能发送邮箱我们可以尝试在linux中直接使用mail函数直接发送邮件哦.


文章网址:

随意转载^^但请附上教程地址。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1 - Cara menyelesaikan ralat MySQL: nombor lajur tidak sepadan dengan nilai Kiraan lajur tidak sepadan dengan kiraan nilai pada baris 1 - Cara menyelesaikan ralat MySQL: nombor lajur tidak sepadan dengan nilai Oct 05, 2023 am 11:40 AM

Cara menyelesaikan ralat MySQL: Bilangan lajur tidak sepadan dengan nilai Contoh kod khusus diperlukan Apabila menggunakan pangkalan data MySQL untuk operasi data, kadangkala anda akan menemui mesej ralat: "Columncountdoesn'tmatchvaluecountatrow1", yang bermaksud nombor itu. daripada lajur tidak sepadan dengan bilangan nilai padanan. Ralat ini biasanya berlaku apabila memasukkan data dan bilangan lajur yang dinyatakan tidak konsisten dengan bilangan nilai yang dimasukkan. Artikel ini menerangkan penyelesaian khusus dan menyediakan contoh kod. meneliti

Takrif jadual yang salah; hanya terdapat satu lajur auto dan ia mesti ditakrifkan sebagai kunci - Cara menyelesaikan ralat MySQL: Takrif jadual yang salah hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci Takrif jadual yang salah; hanya terdapat satu lajur auto dan ia mesti ditakrifkan sebagai kunci - Cara menyelesaikan ralat MySQL: Takrif jadual yang salah hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci Oct 05, 2023 am 11:05 AM

Bagaimana untuk menyelesaikan ralat MySQL: Takrif jadual yang salah hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci Contoh kod khusus diperlukan Dalam beberapa tahun kebelakangan ini, pangkalan data MySQL telah digunakan secara meluas, tetapi semasa penggunaan , kami sering menghadapi Pelbagai laporan ralat. Antaranya, ralat biasa ialah "takrif jadual yang salah; hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci". Ralat ini biasanya berlaku apabila kami membuat jadual, yang mungkin menyakitkan kepala untuk pemula. Artikel ini akan memberi anda analisis terperinci tentang sebab ralat ini dan memberikan yang khusus

ralat mysql 10060 ralat mysql 10060 Sep 12, 2023 am 11:00 AM

Penyelesaian kepada ralat mysql 10060 termasuk menyemak sama ada pelayan MySQL berjalan seperti biasa, menyemak sambungan rangkaian, menyemak tetapan firewall, menyemak konfigurasi pelayan MySQL, menyemak kebenaran pengguna MySQL, menyemak konfigurasi rangkaian, menyemak had bilangan maksimum sambungan pelayan MySQL, dan menggunakan alamat IP dan bukannya Nama hos dan mulakan semula pelayan MySQL, dsb. Pengenalan terperinci: 1. Periksa sama ada pelayan MySQL berjalan seperti biasa Pertama, pastikan pelayan MySQL berjalan dan mendengar port yang betul, dsb.

Analisis sebab: ralat permintaan HTTP 504 tamat masa get laluan Analisis sebab: ralat permintaan HTTP 504 tamat masa get laluan Feb 19, 2024 pm 05:12 PM

Pengenalan ringkas kepada sebab ralat permintaan http: 504GatewayTimeout: Semasa komunikasi rangkaian, pelanggan berinteraksi dengan pelayan dengan menghantar permintaan HTTP. Walau bagaimanapun, kadangkala kami mungkin menghadapi beberapa mesej ralat semasa proses menghantar permintaan. Salah satunya ialah ralat 504GatewayTimeout. Artikel ini akan meneroka punca dan penyelesaian kepada ralat ini. Apakah ralat 504GatewayTimeout? GatewayTimeo

Penyelesaian: Ralat Soket semasa mengendalikan permintaan HTTP Penyelesaian: Ralat Soket semasa mengendalikan permintaan HTTP Feb 25, 2024 pm 09:24 PM

Ralat permintaan http: Penyelesaian kepada SocketError Apabila membuat permintaan rangkaian, kita sering menghadapi pelbagai ralat Salah satu masalah biasa ialah SocketError. Ralat ini dilemparkan apabila aplikasi kami tidak dapat mewujudkan sambungan dengan pelayan. Dalam artikel ini, kami akan membincangkan beberapa punca dan penyelesaian biasa SocketError. Pertama, kita perlu memahami apa itu Socket. Soket ialah protokol komunikasi yang membolehkan aplikasi untuk

Lajur tidak diketahui 'column_name' dalam 'where clause' - Bagaimana untuk menyelesaikan ralat MySQL: lajur tidak diketahui di mana klausa Lajur tidak diketahui 'column_name' dalam 'where clause' - Bagaimana untuk menyelesaikan ralat MySQL: lajur tidak diketahui di mana klausa Oct 05, 2023 am 11:15 AM

Unknowncolumn'column_name'in'whereclause'-Cara menyelesaikan ralat MySQL: lajur tidak diketahui dalam klausa di mana, contoh kod khusus diperlukan MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas yang menyokong penggunaan Bahasa Pertanyaan Berstruktur (SQL). Penyimpanan, pengurusan dan pengambilan semula data. Walau bagaimanapun, apabila menggunakan MySQL untuk membuat pertanyaan, kadangkala kita akan menghadapi ralat Salah satu ralat yang biasa ialah: Unkno

Panduan langkah demi langkah untuk menyelesaikan ralat pemasangan pyqt5 dengan cepat Panduan langkah demi langkah untuk menyelesaikan ralat pemasangan pyqt5 dengan cepat Jan 19, 2024 am 09:32 AM

Jika anda belajar Python dan ingin membangunkan aplikasi GUI, PyQt5 ialah pilihan yang sangat baik. Ia adalah versi terikat perpustakaan PyQt di bawah Python, yang menjadikannya sangat mudah untuk memanggil dan membangunkan perpustakaan grafik Qt. Walau bagaimanapun, kadangkala anda mungkin menghadapi beberapa masalah semasa memasang PyQt5. Panduan ini akan memberikan anda beberapa langkah untuk menyelesaikan masalah ralat pemasangan dengan cepat, dan juga melampirkan contoh kod tertentu. Pastikan versi Python adalah betul PyQt5 ialah perpustakaan berasaskan Python, jadi pertama sekali

Pangkalan data tidak diketahui 'database_name' - Bagaimana untuk menyelesaikan ralat MySQL: nama pangkalan data tidak diketahui Pangkalan data tidak diketahui 'database_name' - Bagaimana untuk menyelesaikan ralat MySQL: nama pangkalan data tidak diketahui Oct 05, 2023 am 09:45 AM

Pangkalan data tidak diketahui 'database_name' - Cara menyelesaikan ralat MySQL: Nama pangkalan data tidak diketahui, contoh kod khusus diperlukan Apabila menggunakan MySQL, kadangkala anda akan menemui mesej ralat: Pangkalan data tidak diketahui 'database_name'. Mesej ralat ini menunjukkan bahawa MySQL tidak dapat mencari pangkalan data yang anda tentukan. Ini mungkin kerana pangkalan data tidak wujud atau anda tidak mempunyai kebenaran untuk mengakses pangkalan data. Di bawah ini kami akan meneroka beberapa kemungkinan punca dan memberikan contoh kod khusus untuk menyelesaikan isu tersebut. data

See all articles