Php邮件工作不起作用

时间:2018-03-13 13:00:51

标签: php email openssl phpmailer

我使用Xampp,我希望用phpmailer发送电子邮件。

我的错误发布了:

  

扩展缺失:openssl

     

邮件程序错误:扩展程序丢失:openssl

我在php.ini中进行了所有设置:;extension=php_openssl.dllextension=php_openssl.dll

并重启apache。

我的问题是什么? 谢谢!!

--- ---- UPDATE

似乎已经解决了OpenSSL问题。 现在我收到以下错误消息:

2018-03-15 09:24:02连接:打开smtp.gmail.com:465,timeout = 300,options = array() 2018-03-15 09:24:02连接:打开 2018-03-15 09:24:13服务器 - >客户: 2018-03-15 09:24:13 SMTP注意:检查连接时是否捕获了EOF 2018-03-15 09:24:13连接:关闭 SMTP错误:无法连接到SMTP主机。 SMTP connect()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 邮件程序错误:SMTP连接()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

1 个答案:

答案 0 :(得分:0)

您可以使用sendmail包从localhost发送邮件,在XAMPP中建立sendmail包。因此,如果您正在使用XAMPP,那么您可以轻松地从localhost发送邮件。

例如,您可以配置C:\ xampp \ php \ php.ini和c:\ xampp \ sendmail \ sendmail.ini以便gmail发送邮件。

在C:\ xampp \ php \ php.ini中找到extension = php_openssl.dll并从该行的开头删除分号,以使SSL为ghost for localhost工作。

在php.ini文件中找到[mail function]并更改

SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

现在打开C:\ xampp \ sendmail \ sendmail.ini。使用以下代码替换sendmail.ini中的所有现有代码

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
Now you have done!! create php file with mail function and send mail from localhost.

PS:不要忘记在上面的代码中替换my-gmail-id和my-gmail-password。另外,如果您从上面复制了设置,请不要忘记删除重复的密钥。例如,如果有另一个sendmail_path,请注意以下行:php.ini文件中的sendmail_path =“C:\ xampp \ mailtodisk \ mailtodisk.exe”

另请记住使用XAMMP控制面板重新启动服务器,以使更改生效。

对于Gmail,请检查https://support.google.com/accounts/answer/6010255以允许从不太安全的应用访问。