2017-04-18 8 views
-1

symfony3を使ってWebアプリケーションを開発しています。私はswiftmailerを使って確認メールを送ろうとしています。私のアプリのユーザー。私はsymfony3に登録を確認したり、簡単なEメールを送ることはできません

残念ながら、私はまだそれをやっていませんでした。 は、ここに私のconfigsはまた、私は

ここ

は私parameter.ymlここ

mailer_transport: gmail 
mailer_host: smtp.gmail.com 
mailer_auth_mode: login 
mailer_user: *********** 
mailer_password: ******** 
mailer_encryption: ssl 

でダイレクトメールを送信するために使用したコードをされたファイルを自分のコードのconfig.yml

swiftmailer: 
transport: '%mailer_transport%' 
host: '%mailer_host%' 
encryption: ssl 
username: '%mailer_user%' 
auth_mode: login 
password: '%mailer_password%' 
spool: { type: memory } 
fos_user: 
db_driver: orm 
firewall_name: main 
user_class: AppBundle\Entity\User 
registration: 
    confirmation: 
     enabled: true 
     from_email: 
      address: *****[email protected] 
      sender_name: ........ 
from_email: 
     address: ******@gmail.com 
     sender_name: ...... 

私のコードにありますメールを送信

 $mailer = $this->get('mailer'); 
     $message = $mailer->createMessage() 
      ->setSubject("Objet") 
      ->setFrom(array('................' => "....")) 
      ->setTo('..........) 
      ->setBody("Hi"); 

     $mailer->send($message); 
+0

この投稿は非常に品質が低いです。最初に改善してください。 –

+0

どこに問題がありますか?良い質問は、[質問する方法](http://stackoverflow.com/help/how-to-ask)に記載されているように、**研究努力**、**問題の明確な説明**、将来の訪問者に役立つ[最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を含みます。 –

答えて

0

ここに私のパラメータファイルです:

mailer_transport: gmail 
mailer_host: gmail 
mailer_user: ************ 
mailer_password: ********** 

そして、ここではではSwiftMailerのための私のconfigファイルのセクションです:

# Swiftmailer Configuration 
swiftmailer: 
    transport: "%mailer_transport%" 
    host:  "%mailer_host%" 
    username: "%mailer_user%" 
    password: "%mailer_password%" 
    spool:  { type: memory } 

私はGmailで二重の検証を使用するので、私はあなたのものを設定する方法を見ることができる場所 thisは、アプリケーション固有のパスワードを生成しました。

これは私が私のコントローラからメールを送信する方法である:

private function sendConfirmationEmail($user) 
{ 
    $token = $user->getEmailConfirmationToken(); 
    $subject = 'Email Confirmation'; 
    $label = 'Confirm Email'; 
    $email = $user->getEmail(); 

    $href = "www.mysymfonyproject.com/app_dev.php/confirm?token=" . $token; 

    $message = \Swift_Message::newInstance() 
    ->setSubject($subject) 
    ->setFrom('[email protected]') 
    ->setTo($email) 
    ->setBody(
     $this->renderView(
      'Emails/confirm.html.twig', 
      array('href' => $href) 
     ), 
     'text/html' 
    ); 

    $this->get('mailer')->send($message); 

    return true; 
} 

私はあなたの設定ファイルに少し奇妙な何かを参照してください。また、あなたがあなたの「auth_mode」と「暗号化」に設定らしい二回、両方のあなたのパラメータで.ymlとあなたのconfig.yml。 config.ymlファイルにはparameters.ymlファイルのようなparameters.ymlファイルが含まれています。設定ファイルにコピー貼り付けされ、設定ファイルにはメーラー設定があります。一部の値はあらかじめ設定された値へのポインタであり、 、%mailer_password%は、パラメータファイルからインクルードされるmailer_passwordパラメータ値を指します。複雑なことは何もありません.YMLと包括です。すでにparameters.ymlのすべてのパラメータを定義しているので、あなたがconfig.ymlにする必要があるすべては、それらを指すようですし、このように見てメーラーのためのあなたのconfig.ymlセクションを変更することで、そうすることができます。

transport: "%mailer_transport%" 
host: "%mailer_host%" 
encryption: "%mailer_encryption%" 
username: "%mailer_user%" 
auth_mode: "%mailer_auth_mode%" 
password: "%mailer_password%" 
spool: { type: memory } 

または、アプリケーション設定をコピーして試してみてください。 「Good Luck :)」と挨拶しているYML開発者 PS。 YMLは適切な字下げを持たなければならず、設定ファイルの推奨された編集は正しくインデントされていないため、手動で字下げすることがあります。

+1

ああ、ちょっともう一つ。大きな編集の後にあなたのキャッシュをリフレッシュしてください。 'PHP bin/console cache:clear' –

+0

ありがとう、本当に助けてくれました –

+0

私は助けてくれるとうれしいです。 –

関連する問題