2017-12-28 21 views
1

symfony 3プロジェクト用のSMTPをplatform.shに設定しようとしましたが、動作しませんでした。symfony 3プロジェクト用のsmtpをplatform.shに設定します

私はこの文書に従いました[https://docs.platform.sh/administration/web/email.html#sending-e-mail][1]

parameters.ymlはビルドプロセス中に生成されるため編集できません。だから私はparamters.yml.distを編集しようとしました。そして、このコードでそれをupdatet:私は、私は、ビルド中に、次のエラーメッセージが表示されますないとき

mailer_transport: smtp 
mailer_host:  "%env(PLATFORM_SMTP_HOST)%" 
mailer_user:  null 
mailer_password: null 

W: [RuntimeException]                
W: An error occurred when executing the "'cache:clear --no-warmup'" command:   
W:                      
W:  [Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]  
W:  You have requested a non-existent parameter "env(platform_smtp_host)". 

は、だから私はparamters_platform.phpを編集しようとしたし、次のコードを追加しました:

$container->setParameter('mailer_host','%env(PLATFORM_SMTP_HOST)%'); 

そして、ビルドプロセスが動作しますが、ウェブサイトをロードするとき、私は、次のエラーメッセージが表示されます。

ParameterNotFoundException in ParameterBag.php line 84: 
You have requested a non-existent parameter "env(platform_smtp_host)". 
in ParameterBag.php line 84 
at ParameterBag->get('env(platform_smtp_host)') in ParameterBag.php line 200 
at ParameterBag->resolveString('%env(PLATFORM_SMTP_HOST)%', array('mailer_host' => true, 'env(platform_smtp_host)' => true)) in ParameterBag.php line 171 
at ParameterBag->resolveValue('%env(PLATFORM_SMTP_HOST)%', array('mailer_host' => true)) in ParameterBag.php line 200 
at ParameterBag->resolveString('%mailer_host%', array('mailer_host' => true)) in ParameterBag.php line 171 
at ParameterBag->resolveValue('%mailer_host%', array()) in ParameterBag.php line 161 
at ParameterBag->resolveValue(array('transport' => '%mailer_transport%', 'host' => '%mailer_host%', 'username' => '%mailer_user%', 'password' => '%mailer_password%'), array()) in ParameterBag.php line 161 
at ParameterBag->resolveValue(array(array('transport' => '%mailer_transport%', 'host' => '%mailer_host%', 'username' => '%mailer_user%', 'password' => '%mailer_password%'))) in MergeExtensionConfigurationPass.php line 45 
at MergeExtensionConfigurationPass->process(object(ContainerBuilder)) in MergeExtensionConfigurationPass.php line 39 
at MergeExtensionConfigurationPass->process(object(ContainerBuilder)) in Compiler.php line 104 
at Compiler->compile(object(ContainerBuilder)) in ContainerBuilder.php line 597 
at ContainerBuilder->compile() in bootstrap.php.cache line 2687 
at Kernel->initializeContainer() in bootstrap.php.cache line 2465 
at Kernel->boot() in bootstrap.php.cache line 2496 
at Kernel->handle(object(Request)) in app_dev.php line 30 

誰でもSMTPをplaform.shで処理することができましたか?あるいは、誰もこの問題を解決する方法を知っていますか?

ありがとうございました!

答えて

2

古いSymfony 3xバージョンを使用しているようです。 %env()%構文が3.2バージョンで導入されました。回避策として、parameters.phpファイルを設定ディレクトリに作成し、config.ymlにインポートすることができます。上のいくつかのパラメータを設定するためにこれを使用しhttp://php.net/manual/en/function.getenv.php

+0

http://symfony.com/doc/3.3/configuration/external_parameters.html のgetenv():外部パラメータを設定する

<?php $container->setParameter('mailer_host', getenv('PLATFORM_SMTP_HOST')); 

いくつかの記事:このファイルは、単にgetenv() PHPの関数を使用して、必要なコンテナパラメータを設定内部2.8プロジェクト用のコンテナで、常にうまく機能しました。 – dlondero

関連する問題