我正在尝试使用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);
根据上面的代码,会导致这个错误的原因是什么?
我对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。