当前位置: 首页 > 知识库问答 >
问题:

PHP正在尝试安全地发送邮件-找不到PHPMailer类

程修雅
2023-03-14

我从以下几点开始:

composer require phpmailer/phpmailer

然后放置要求一次

require_once "../vendor/autoload.php";

然后

$mail = new PHPMailer;

这就是PHP有一个致命错误的地方:

致命错误:未找到类PHPMailer

下面是我的代码:使用PHPMailer\PHPMailer\PHPMailer;使用PHPMailer\PHPMailer\Exception;

# require php mailer
  require_once "../vendor/autoload.php";

  //PHPMailer Object
  $mail = new PHPMailer;

  $mail->isSMTP();
  $mail->SMTPDebug = 3; 
  $mail->SMTPAuth = true;
  // $mail->SMTPSecure = "ssl";
  $mail->SMTPSecure = "tls";
  $mail->Host = "smtp-relay.gmail.com";
  $mail->Port = "587";
  $mail->Username = "some gmail address";
  $mail->Password = "some password";
  $mail->SetFrom("info@example.com");
  $mail->Subject = $subject;
  $mail->Body = $htmlMessage;
  $mail->AddAddress($recpEmails);
  $mail->Send();

$htmlMessage是一个包含纯文本和htmlmime_boundary的变量,但它永远不会到达那里,因为它找不到PHPMailer。

这就是我试图解决问题的方法:

我在与供应商相同的目录中创建了另一个名为PHPMailer的目录,这个新目录包含PHPMailer/PHPMailer/src的内容,但它仍然找不到PHPMailer类。

我也需要PHPMailer.php文件吗?我以为这就是自动加载器应该做的?

提前谢谢

在@Phil在评论中指出我错过了使用命名空间后,我更新了代码,这导致了一个新的错误:

致命错误:未捕获异常“PHPMailer\PHPMailer\exception”,消息“SMTP connect()失败”

我读到$mail-

2019-02-11 01:51:57连接:打开ssl://smtp-relay.gmail.com:587,超时=300,选项=数组()
2019-02-11 01:51:58连接失败。错误#2:stream_socket_client():代码1的SSL操作失败。OpenSSL错误消息:错误: 140770FC: SSL例程:SSL23_GET_SERVER_HELLO:未知协议[v2018/资产/api/供应商/phpmailer/phpmailer/src/SMTP. php行327]
2019-02-11 01:51:58连接失败。错误#2:stream_socket_client():未能启用加密[v2018/资产/api/供应商/phpmailer/phpmailer/src/SMTP. php第327行]
2019-02-11 01:51:58连接失败。错误#2:stream_socket_client():无法连接到ssl://smtp-relay.gmail.com:587(未知错误)[v2018/资产/api/供应商/phpmailer/phpmailer/src/SMTP. php line 327]
2019-02-11 01:51:58SMTP错误:无法连接到服务器:(0)
SMTP连接()失败.https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

然后,我在另一篇帖子上读到以更改以下设置,这允许我看到它正在连接,但它不接受我的凭据:

$mail->SMTPSecure = "tls";

2019-02-11 02:00:26服务器-

我现在不知道该怎么办,因为我知道这些是我的gmail帐户的凭证。我必须有一个gmail商业帐户或类似的东西吗?

我使用了不正确的密码。输入正确密码后,我开始收到以下消息:

2019-02-11 14:33:44服务器-

原来我必须有一个G-Suite账户才能使用smtp-relay.gmail.com.我只有一个普通的gmail账户。当我改成smtp.gmail.com,那么我又回到了坏凭据错误。我会等待我的G-Suite帐户被验证,我会更新结果。


共有1个答案

翟嘉志
2023-03-14

尝试添加

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

在文件的顶部导入PHPMailer类。

 类似资料:
  • 本文向大家介绍PHP借助phpmailer发送邮件,包括了PHP借助phpmailer发送邮件的使用技巧和注意事项,需要的朋友参考一下 本地没有发邮件的服务器,借助现成的SMTP服务器发送邮件是个不错的选择,这里使用到的工具是phpmailer ( Version 5.2.0),SMTP服务器就选gmail和163。 1. 使用gmail发送的脚本 2.使用163发送邮件的脚本 只需要更改SMTP

  • 本文向大家介绍PHPMailer发送邮件,包括了PHPMailer发送邮件的使用技巧和注意事项,需要的朋友参考一下 PHPMailer是一个封装好的PHP邮件发送类,支持发送HTML内容的电子邮件,以及图片附件,前提要设置好邮件服务器就能实现邮件发送功能。 HTML 首先我们先放置一个收件箱的输入框和一个发送邮件按钮: 收件人: 以上所述是小编给大家介绍的PHPMailer发送邮件,希望对大家有所

  • 使用根据java文档 使用此客户端进行的所有服务调用都是阻塞的,并且在服务调用完成之前不会返回。 快速的问题是,它是线程安全的吗?。多个线程是否可以使用相同的实例并行调用

  • 我得到这个错误 2020-06-03 21:08:07连接:打开到ssl://smtp.gmail.com:25,超时=300,选项=数组()2020-06-03 21:08:07连接失败。 错误#2:stream_socket_client():代码1的SSL操作失败。 OpenSSL错误消息:错误:1408F10B:SSL例程:ssl3\u get\u记录:错误的版本号[C:\xampp\ht

  • 本文向大家介绍phpmailer发送邮件功能,包括了phpmailer发送邮件功能的使用技巧和注意事项,需要的朋友参考一下 PHP内置的mail函数使用起来不够方便,另外受其他语言的影响,博主更偏好面向对象的包管理模式,因此phpmailer成为了我用PHP发送邮件的首选,这里分享给大家。 库导入 这里使用composer进行包管理,以下是json文件: 使用样例 测试结果 博主使用163作为发送

  • 本文向大家介绍ThinkPHP集成PHPMailer发送邮件,包括了ThinkPHP集成PHPMailer发送邮件的使用技巧和注意事项,需要的朋友参考一下 下载 PHPMailer 发送邮件需要两个文件,如下: class.phpmailer.php class.smtp.php 下载地址:https://github.com/PHPMailer/PHPMailer 如果要用POP3接收邮件,还需