Ich möchte die SwiftMailer-Klassenbibliothek verwenden, um E-Mails innerhalb eines PHP-Skripts zu senden.So senden Sie E-Mails mit STARTTLS und einem selbstsignierten Zertifikat mithilfe der Swiftmailer-Bibliothek in PHP
Der Mailserver stellt den Befehl STARTTLS zur Verfügung und verwendet selbstsignierte Zertifikate.
Das Problem ist, dass es scheint, ein Problem für SwiftMailer tgo die Mails zu senden.
Wenn ich einfach coee wie folgt verwenden, um den Transport zu initialisieren:
$transport = Swift_SmtpTransport::newInstance("server.example.com", 25, "tls")
->setUsername("[email protected]")
->setPassword("example");
Dieser Fehler ist Show:
Uncaught Swift_TransportException: Unable to connect with TLS encryption
ich bereits hier und anderswo suchen. Ich fand diesen Thread hier auf Stackoverflow: PHP - Swiftmailer using STARTTLS and self signed certificates
Aber wenn ich hinzufügen, das genannte Verfahren zu dem obigen Code wie folgt aus:
->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));
Der Block in voller sieht wie folgt aus:
$transport = Swift_SmtpTransport::newInstance("server.example.com", 25, "tls")
->setUsername("[email protected]")
->setPassword("example")
->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));
I bekomme ich diesen Fehler:
Call to undefined method setStreamOptions
So sieht es aus wie die genannten Meth od wurde entfernt oder umbenannt. In der SwiftMailer-Dokumentation finde ich nichts dazu. Es gibt nur wenige Lösungen, die im Internet erwähnt werden, um die Bibliothek zu patchen. Ich habe diese Möglichkeiten nicht überprüft, weil ich den Bibliothekscode nicht ändern möchte.
Meine SwiftMailer Version ist die tatsächliche 5.4.2
. Gibt es eine Möglichkeit, dieses Problem zu lösen, ohne die Bibliothek zu patchen, und wenn dies erforderlich ist, wie soll dies geschehen?
Hoffe, dass mir jemand helfen kann.
Mit freundlichen Grüßen
P. S. Hoffe ich habe es gut gemacht und mein Englisch ist verständlich. Wenn es Fragen gibt, fragen Sie bitte.