【问题标题】:Silex + Swift Mailer not workingSilex + Swift Mailer 不工作
【发布时间】:2015-04-27 11:21:55
【问题描述】:

我有一个带有 Swift Mailer 的 Silex 应用,但配置似乎不是从 $app['swiftmailer.options'] 加载的。

我在引导文件中注册了服务

$app->register(new SwiftmailerServiceProvider());

在我的配置文件中

$app['swiftmailer.options'] = array(
    'host' => 'smtp.mandrillapp.com',
    'port' => '587',
    'username' => 'MY_USERNAME',
    'password' => 'MY_PASSWORD',
    'encryption' => null,
    'auth_mode' => null
);

然后我发送我的电子邮件

$message = \Swift_Message::newInstance()
    ->setSubject($this->app['forum_name'] . ' Account Verification')
    ->setFrom(array('no-reply@domain.com'))
    ->setTo(array('recipient@example.com'))
    ->setBody('My email content')
    ->setContentType("text/html");

$this->app['mailer']->send($message);

发送函数返回1,但电子邮件从未发送。但是,当我尝试手动创建 Swift_SmtpTransport 的实例时,电子邮件会发送。

$transport = \Swift_SmtpTransport::newInstance('smtp.mandrillapp.com', 587)
    ->setUsername('MY_USERNAME')
    ->setPassword('MY_PASSWORD');
...
$mailer = \Swift_Mailer::newInstance($transport);
$mailer->send($message);

所以问题是$app['swiftmailer.options'] 未被读取或加载。我在这里遗漏了什么吗?

我正在按照here 的指示进行操作。

【问题讨论】:

    标签: php swiftmailer silex mandrill


    【解决方案1】:

    默认情况下,SwiftmailerServiceProvider 使用假脱机传输来排队电子邮件并在 TERMINATE 阶段(在将响应发送回客户端之后)将它们全部发送。如果你不打电话给Application->run(),你就绕过了这个过程。您的邮件将留在假脱机中,永远不会被发送。

    如果您想在正常的 Silex 流程之外发送邮件,您可以使用手动刷新假脱机

    if ($app['mailer.initialized']) {
        $app['swiftmailer.spooltransport']
            ->getSpool()
            ->flushQueue($app['swiftmailer.transport']);
    }
    

    直接取自 SwiftmailerServiceProvider。

    或者你可以简单地关闭假脱机

    $app['swiftmailer.use_spool'] = false;
    

    【讨论】:

      【解决方案2】:

      试试这个:

      $app->register(new \Silex\Provider\SwiftmailerServiceProvider(), array(
         'swiftmailer.options' => array(
              'sender' => 'sender',
              'host' => 'host',
              'port' => 'port',
              'username' => 'username',
              'password' => 'password'
         )
      ));
      

      文档中没有。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-30
        • 1970-01-01
        • 1970-01-01
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        • 2013-03-26
        相关资源
        最近更新 更多