2016-04-06 14 views
6

Ich muss die Validierung von SSL-Zertifikat für Entwicklungszwecke deaktivieren, aber ich finde nichts darüber in der offiziellen Dokumentation.SwiftMailer - PHP - Wie ssl Zertifikatsvalidierung zu deaktivieren

Ich benutze PHP 5.6 und Symfony2 (v2.7).

Die Konfiguration Referenz von SwiftMailerBundle ist:

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

prüfen https://github.com/swiftmailer/swiftmailer/issues/571 verwenden. Sie müssen Swift wahrscheinlich auf die neueste Version upgraden und deren Anweisungen befolgen. – apokryfos

Antwort

2

Ich denke, das ein schmutziger Hack, aber es funktioniert gut für mich;)

$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

gibt es die swiftmailer.mailer.default.transport von Symfony und Einstellung folgender Konfiguration funktioniert für mich:

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

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

Ich glaube nicht, dass ich es Es ist möglich, die Stream-Optionen in der .yml-Datei festzulegen.

8

fand ich eine undokumentierte Funktion

symfony 2.8, PHP 5.6, Swiftmailer-Bundle 2.5.3

Swiftmailer Konfiguration

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

Funktioniert auch mit Symfony 3.3, Swiftmailer-Bundle 3.1.6 und PHP 7.1 – Fuujin

+1

Unerkannte Option "stream_options" unter "swiftmailer" mit Symfony 3.3, Swiftmailer-Bundle 3.1.6 und php 7.1 – alexeevyci

+0

Funktioniert auch mit Symfony 4.0.4 –

0

Die von Maxim vorgeschlagene Konfigurationsoption nicht für mich arbeiten (Symfony 3.4 und Swift Mailer 5.4)

Die sauberste Lösung, die ich finden konnte, ist die folgende:

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

wo $mailer ist Ihre Swiftmailer-Instanz, die Sie in irgendeinem Dienst oder Controller