已弃用:动态属性 PHPMailer\PHPMailer\PHPMailer::$port 的创建已弃用

问题描述 投票:0回答:1

我正在尝试通过 PHPMailer 发送电子邮件。

我本地的开发环境:

操作系统 Windows 11 Pro XAMPP 与 PHP 8.2.12 PHPMailer 版本 6.9.1

代码如下所示:

      try {
        $phpMailer = new PHPMailer(true);
          
        $phpMailer->CharSet = $this->charSet;

        // server settings
        $phpMailer->isSMTP();
        $phpMailer->Host       = $this->mailHost;
        $phpMailer->SMTPAuth   = true;
        $phpMailer->Username   = $this->mailUser;
        $phpMailer->Password   = $this->mailPwd;
        $phpMailer->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        $phpMailer->port       = $this->mailPort; // is set to 587
          
            // recipients
        $phpMailer->setFrom($this->from, 'test.test');
        $phpMailer->addAddress($addressMail);

        // content
        $phpMailer->isHTML($this->isHtml);
        $phpMailer->Subject = $this->subject;
        $phpMailer->Body    = $this->body;
          
        // add attachments
        if (!empty($attachments) && $addAttachment) {
          for ($i = 0; $i < count($attachments["filePaths"]); $i++) {
            if ( count($attachments["filePaths"]) > 0
              && array_key_exists( $i, $attachments["fileNames"])) {
              $phpMailer->AddAttachment($attachments["filePaths"][$i], $attachments["fileNames"][$i]);
            }
          }
        }

        $returnValue = $phpMailer->send();
      } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$phpMailer->ErrorInfo}";
      }

但是,我收到消息: 已弃用:动态属性 PHPMailer\PHPMailer\PHPMailer::$port 的创建已弃用

这是什么原因?

我可能使用了错误的版本(升级PHPMailer)?

我尝试将发送切换为 SMTP,但我的服务器不支持它,因此没有发送邮件。

使用端口 465 和 TLS 发送邮件,但我得到该端口已过时的信息。

php phpmailer
1个回答
0
投票

您应该使用正确的属性名称。

具体来说,您应该使用 $phpMailer->Port(带有大写“P”)而不是 $phpMailer->port。

如果您使用端口 456 发送电子邮件,我会使用 PHPMailer::ENCRYPTION_SMTPS 而不是 PHPMailer::ENCRYPTION_STARTTLS,这用于隐式 SSL

© www.soinside.com 2019 - 2024. All rights reserved.