【问题标题】:Swiftmailer - Uncaught Error: Call to undefined method Swift_SmtpTransport::newInstance()Swiftmailer - 未捕获的错误:调用未定义的方法 Swift_SmtpTransport::newInstance()
【发布时间】:2017-12-26 20:51:36
【问题描述】:

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

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

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

代码如下:

require_once 'swift/lib/swift_required.php';

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

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

$message = Swift_Message::newInstance('Weekly Hours')
       ->setFrom (array('email@gmail.com' => 'My Name'))
       ->setTo (array('email@hotmail.com' => 'Recipient'))
       ->setSubject ('Weekly Hours')
       ->setBody ('Test Message', 'text/html');

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

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

【问题讨论】:

    标签: php php-7 swiftmailer


    【解决方案1】:

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

    require_once 'swift/lib/swift_required.php';
    
    $transport = new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl');
    $transport->setUsername('email@gmail.com')->setPassword('password');
    
    $mailer = new Swift_Mailer($transport);
    
    $message = new Swift_Message('Weekly Hours');
    $message
       ->setFrom(['email@gmail.com' => 'My Name'])
       ->setTo(['email@hotmail.com' => 'Recipient'])
       ->setSubject('Weekly Hours')
       ->setBody('Test Message', 'text/html');
    
    $result = $mailer->send($message);
    

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

    【讨论】:

    • 我需要在新对象周围加上括号才能让它像这样工作:$transport = (new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl'))
    • 是的,忘了 PHP 不允许直接使用实例。就我个人而言,我觉得对象周围的括号不太可读,所以我会以简单的方式保留它,哈哈。谢谢你的评论! @ArtGeigel
    【解决方案2】:
    Swift_Mailer::newInstance($transport);
    

    newInstance 方法在 5.4 版本中可用,在较新的版本中,它被删除了。 检查 composer.json 中的版本。

    "swiftmailer/swiftmailer": "^5.4"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2017-06-11
      相关资源
      最近更新 更多