PHP邮件程序不起作用

Posted

技术标签:

【中文标题】PHP邮件程序不起作用【英文标题】:Php mailer doesn't working 【发布时间】:2018-08-21 18:04:19 【问题描述】:

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

我的错误已发出:

缺少扩展:openssl

邮件程序错误:缺少扩展名:openssl

我在 php.ini 中进行了所有设置:;extension=php_openssl.dllextension=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邮件不起作用[重复]

使用 AJAX 提交时发送电子邮件不起作用

使用 jquery 发送电子邮件不起作用:PHP

文本旋转属性在 PHP 的电子邮件正文中不起作用

为啥我的 PHP 表单不起作用?我确实收到了电子邮件,但里面没有内容

如何使用 AJAX 执行 PHP 电子邮件脚本? [当前代码不起作用]