我使用Xampp,我希望用phpmailer发送电子邮件。
我的错误发布了:
扩展缺失:openssl
邮件程序错误:扩展程序丢失:openssl
我在php.ini中进行了所有设置:;extension=php_openssl.dll
到extension=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
答案 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以允许从不太安全的应用访问。