在Silex上使用Swiftmailer的内部服务器错误

时间:2013-03-17 02:38:48

标签: php swiftmailer silex

我正在开发一个Silex项目,我正在尝试使用Swiftmailer提供程序发送电子邮件,但总是收到内部服务器错误(500)。

注册:

$app->register(new Silex\Provider\SwiftmailerServiceProvider(), array(
        'swiftmailer.options' => array(
            'host' => 'smtp.gmail.com',
            'port' => '465',
            'username' => 'my_email',
            'password' => 'my_password')

    ));

如果我调用邮件程序$ app ['mailer']会抛出内部服务器错误。

如果我尝试使用文档示例,则会出现内部服务器错误:

 $app->post('/feedback', function () use ($app) {
    $request = $app['request'];

    $message = \Swift_Message::newInstance()
        ->setSubject('[YourSite] Feedback')
        ->setFrom(array('noreply@yoursite.com'))
        ->setTo(array('feedback@yoursite.com'))
        ->setBody($request->get('message'));

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

    return new Response('Thank you for your feedback!', 201);
});

我不知道问题是什么,我对其他提供商没有麻烦。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在'swiftmailer.options'数组中添加以下条目会有帮助吗?默认情况下,Gmail在端口465上使用ssl。

'encryption' => 'ssl',
'auth_mode' => 'login',

[<强>更新] 如果在代码中定义名称空间,则需要在Silex \ Provider ..

前添加“\”
$this->register(new Silex\Provider\SwiftmailerServiceProvider(), array(

$this->register(new \Silex\Provider\SwiftmailerServiceProvider(), array(