2016-04-06 4 views
6

Мне нужно отключить проверку сертификата ssl для целей разработки, но я ничего не знаю об этом в официальной документации. http://swiftmailer.org/docs/introduction.htmlSwiftMailer - PHP - Как отключить проверку сертификата ssl

Я использую php 5.6 и Symfony2 (v2.7).

Ссылка конфигурации SwiftMailerBundle является:

swiftmailer: 
    transport:   smtp 
    username:    ~ 
    password:    ~ 
    host:     localhost 
    port:     false 
    encryption:   ~ 
    auth_mode:   ~ 
    spool: 
     type:     file 
     path:     '%kernel.cache_dir%/swiftmailer/spool' 
    sender_address:  ~ 
    antiflood: 
     threshold:   99 
     sleep:    0 
    delivery_address:  ~ 
    disable_delivery:  ~ 
    logging:    '%kernel.debug%' 
+1

Проверить https://github.com/swiftmailer/swiftmailer/issues/571. Вероятно, вам нужно обновить Swift до последней версии и следовать их инструкциям. – apokryfos

ответ

2

Я думаю, что это грязный хак, но это работает для меня отлично;)

$https['ssl']['verify_peer'] = FALSE; 
$https['ssl']['verify_peer_name'] = FALSE; // seems to work fine without this line so far 
/** @var \Swift_Transport_EsmtpTransport $transport */ 
$transport = $this->get('swiftmailer.mailer.default.transport'); 
$transport->setStreamOptions($https); 
1

Получение swiftmailer.mailer.default.transport от Symfony и настройки следующих работ конфигурации для меня:

$transport = $this->get("swiftmailer.mailer.default.transport"); 

// disable SSL certificate validation 
$transport->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false))); 

Я не думаю, что это я Можно установить параметры потока в файле .yml.

8

Я нашел недокументированные функции

Symfony 2.8, PHP 5.6, SwiftMailer-расслоением 2.5.3

Конфигурация Swiftmailer

swiftmailer: 
    stream_options: 
    ssl: 
     verify_peer: false 
     verify_peer_name: false 
+1

Также работает с Symfony 3.3, Swiftmailer-bundle 3.1.6 и php 7.1 – Fuujin

+1

Неопознанная опция «stream_options» под «swiftmailer» с Symfony 3.3, Swiftmailer-bundle 3.1.6 и php 7.1 – alexeevyci

+0

Также работает с Symfony 4.0.4 –

0

параметр конфигурации предложил Максим не работал для меня (Symfony 3.4 и Swift Mailer 5.4)

Чистое решение, которое я могу найти, является следующим:

$transport = $mailer->getTransport(); 
if($transport instanceof \Swift_Transport_EsmtpTransport){ 
    $transport->setStreamOptions([ 
     'ssl' => ['allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false] 
    ]); 
} 

где $mailer является экземпляр SwiftMailer, который вы используете в какой-то службы или контроллер

Смежные вопросы