2016-11-02 6 views
1

php5.6(mac os x sierra)にアップグレードした後、ローカルのテスト環境でメールを送信できません。localhost上のsmtp gmailによるsymfony swiftmailer opensslエラー

しかし、symfonyのswiftmailerによる迷惑メール配信は機能しません。

これはエラーです:

[Symfony\Component\Debug\Exception\ContextErrorException] 
Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: 
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 

私が今まで発見されたもの:

5.6 OpenSSLをPHP以来要件思わ:http://php.net/manual/en/migration56.openssl.php

更新した後、私はのfile_get_contentsを使用することができませんでしたのでこのエラーが発生していないので、私は何を指定したのですか? openssl.cafile = 私のphp iniで私が見つけたのはhttps://andrewyager.com/2016/10/04/php-on-macos-sierra-cant-access-ssl-data/

もう一度file_get_contentsが機能しますが、smtp経由でswiftmailerメールを送信できません。

これは私のではSwiftMailerの設定です:

ではSwiftMailer:

transport:  "smtp" 
host:    "smtp.gmail.com" 
username:   "%mailer_user%" 
password:   "%mailer_password%" 
auth_mode:  login 
port:    587 
encryption:  tls 
delivery_address: "%mailer_delivery_address%" 
spool:   { type: memory } 

私はsymfonyの/ではSwiftMailerに他の場所に私cafileを提供する必要がありますか?

これはすでに見つかりました:PHP - Swiftmailer using STARTTLS and self signed certificates しかし、このようなハードコードソリューションはオプションではありません。毎回これを変更せずにコードベースを展開したいからです。私はシステムレベルでこの問題を解決することを好む。

+1

は、使用しているのOpenSSLのバージョンを明記してください。 OpenSSLで使用されるコンテキストを設定するコードも表示してください。 OpenSSL wikiの[SSL/TLS Client](https://wiki.openssl.org/index.php/SSL/TLS_Client)に似ているはずです。 – jww

答えて

3

あなたがあなたのローカルマシン上にあるような問題は、自己署名証明書であることを、と思われます。

あなたのconfig.ymlに以下を追加する必要があります(または、あなたがそれに続くconfig_dev.ymlにPRODからテスト/開発を分離することを好む場合):

swiftmailer: 
    # ... your other config 
    stream_options: 
     ssl: 
     allow_self_signed: true 
     verify_peer: false 

それが動作するはずです。この方法は、あなたが持っているDEVプロドラッグは分離した。また、ここで

ルック:https://github.com/symfony/swiftmailer-bundle/tree/master/Tests/DependencyInjection/Fixtures/config/yml

+0

ありがとうございます。私はこれを避けたいと思っていましたが、config_dev.ymlを使うのはいい考えです! –

関連する問題