SwiftMailer 中 EsmtpTransport.php 中的问题

Issue in EsmtpTransport.php in SwiftMailer

我正在尝试使用 SwiftMailer 从我的应用程序发送电子邮件。我已经使用 git 在我的项目文件夹中使用以下命令安装了 SwiftMailer 包:

git clone https://github.com/swiftmailer/swiftmailer.git

这表明 swiftmailer 已正确克隆到我的项目文件夹中。现在,当我尝试从我的应用程序发送电子邮件时,它显示以下错误:

 <b>Parse error</b>:  syntax error, unexpected '?' in <b>C:\xampp\htdocs\myAppPath\swiftmailer\lib\classes\Swift\Transport\EsmtpTransport.php</b> on line <b>211</b><br />

当我试图进入EsmtpTransport.php文件时,我发现写了下面的代码:

 /**
 * Returns the IP used to connect to the destination.
 *
 * @return string
 */
public function getSourceIp()
{
    return $this->params['sourceIp'] ?? null;  //*line number 211*
}

我在应用程序中编写的代码如下:

<?php
    $subject = 'SwiftMailer Test!';
    $message = 'Hi! This is a test email from SwiftMailer';
    $usernameEmail = "username";
    $passwordEmail = "password";
    try{
        $transport = (new Swift_SmtpTransport('smtp.example.com', 25))
                        ->setUsername($usernameEmail)
                        ->setPassword($passwordEmail)
                    ;
        $message = Swift_Message::newInstance();
        $message->setTo(array(
        "recipient@somemail.com" => "Recipient Name"
        ));
        $message->setSubject($subject);
        $message->setBody($message);
        $message->setFrom("email@example.com", "My App Team");
        $mailer = Swift_Mailer::newInstance($transport);
        $mailer->send($message, $failedRecipients);
?>

我无法找出问题并尝试在网上搜索但不幸的是还没有成功。有人可以帮忙吗?提前致谢!

代码中有错字。他们想使用三元运算符,但他们将 : 放在第二位 ?。您不使用作曲家,因此您可以自己修复它。只是改变

return $this->params['sourceIp'] ?? null;  //*line number 211*

return $this->params['sourceIp'] ?: null;  //*line number 211*

或从 here.

下载 v6.0.1,没有这个错误

@编辑 这不是错字。是 Null coalescing operator。它已在 PHP7.0 中引入,所以我想您使用的是 PHP 的旧版本。你应该使用 PHP7+ 因为 swiftmailer 是针对这个版本的。