Swiftmailer - 未捕获错误:调用未定义的方法Swift_SmtpTransport :: newInstance()

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

我正在尝试使用Swiftmailer发送电子邮件。

我得到一个未捕获的错误:

调用未定义的方法Swift_SmtpTransport :: newInstance()。

这是代码:

require_once 'swift/lib/swift_required.php';

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
      ->setUsername ('[email protected]')
      ->setPassword ('password');

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance('Weekly Hours')
       ->setFrom (array('[email protected]' => 'My Name'))
       ->setTo (array('[email protected]' => 'Recipient'))
       ->setSubject ('Weekly Hours')
       ->setBody ('Test Message', 'text/html');

$result = $mailer->send($message);

根据上面的代码,会导致这个错误的原因是什么?

php php-7 swiftmailer
1个回答
14
投票

我对SwiftMailer不太熟悉,但是从您提供的错误的简要概述及其文档页面,我建议您尝试使用new运算符。从错误中可以清楚地看出,Swift_SmtpTransport类没有newInstance方法,因此当您使用它创建新实例时,它会抛出错误。也许尝试使用这个:

require_once 'swift/lib/swift_required.php';

$transport = new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl');
$transport->setUsername('[email protected]')->setPassword('password');

$mailer = new Swift_Mailer($transport);

$message = new Swift_Message('Weekly Hours');
$message
   ->setFrom(['[email protected]' => 'My Name'])
   ->setTo(['[email protected]' => 'Recipient'])
   ->setSubject('Weekly Hours')
   ->setBody('Test Message', 'text/html');

$result = $mailer->send($message);

编辑:PHP实例化对象后不允许直接方法调用(不带括号)。谢谢,Art Geigel。

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