0

我正在做一个 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);
});

我不知道是什么问题,我与其他提供商没有任何问题。

有任何想法吗?

4

1 回答 1

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(
于 2013-03-17T03:34:28.070 回答