PHP邮件程序不起作用
Posted
技术标签:
【中文标题】PHP邮件程序不起作用【英文标题】:Php mailer doesn't working 【发布时间】:2018-08-21 18:04:19 【问题描述】:我使用 Xampp,我想用 phpmailer 发送电子邮件。
我的错误已发出:
缺少扩展:openssl
邮件程序错误:缺少扩展名:openssl
我在 php.ini 中进行了所有设置:;extension=php_openssl.dll
到 extension=php_openssl.dll
并重新启动 apache。
我的问题是什么? 谢谢!!
---更新----
似乎已经在 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 连接()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 邮件程序错误:SMTP 连接()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
【问题讨论】:
您是否真的安装了 OpenSSL 或仅启用了可能存在或不存在的扩展? phpinfo 是否告诉你 OpenSSL 正在工作? 检查:***.com/questions/9466086/… 在你的 php.ini 中找到extension_dir = "ext"
并将其更改为:extension_dir = "c:/php710/ext"
【参考方案1】:
您可以使用 sendmail 包从本地主机发送邮件,sendmail 包在 XAMPP 中内置。因此,如果您使用的是 XAMPP,那么您可以轻松地从 localhost 发送邮件。
例如,您可以配置 C:\xampp\php\php.ini 和 c:\xampp\sendmail\sendmail.ini 让 gmail 发送邮件。
在 C:\xampp\php\php.ini 中找到 extension=php_openssl.dll 并从该行的开头删除分号,以使 SSL 适用于本地主机的 gmail。
在php.ini文件中找到【邮件功能】并修改
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。此外,如果您从上面复制设置,请不要忘记删除重复的键。例如,如果在 php.ini 文件中有另一个 sendmail_path ,则注释以下行:sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
还记得使用 XAMMP 控制面板重新启动服务器以使更改生效。
对于 gmail,请检查 https://support.google.com/accounts/answer/6010255 以允许从不太安全的应用程序访问。
【讨论】:
这可能是真的,但它与使用 SSL 和 PHPMailer 发送电子邮件无关,这就是问题所在。以上是关于PHP邮件程序不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在xampp localhost中发送的php邮件不起作用[重复]