ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – Silex Swift Mailer无法正常工作

2019-07-03 00:16:06  阅读:246  来源: 互联网

标签:php swiftmailer mandrill silex


我有一个Swile Mailer的Silex应用程序,但似乎配置没有从$app [‘swiftmailer.options’]加载.

我在我的bootstrap文件中注册了该服务

$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);

send函数返回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的说明进行操作.

解决方法:

默认情况下,SwiftmailerServiceProvider使用假脱机传输来对电子邮件进行排队,并在TERMINATE阶段(将响应发送回客户端之后)将它们全部发送出去.如果您不调用Application-> run(),则会绕过此过程.您的邮件将保留在假脱机中,永远不会被发送.

如果您想在正常的Silex流程之外发送邮件,可以手动刷新线轴

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

这是直接从SwiftmailerServiceProvider获取的.

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

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

标签:php,swiftmailer,mandrill,silex
来源: https://codeday.me/bug/20190702/1361252.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有