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 是针对这个版本的。
我正在尝试使用 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 是针对这个版本的。