2016-04-14 81 views
3

我是Symfony3的新手,我需要發送一封電子郵件(使用gmail)。我在本地主機上工作。我已經配置我的config_dev.yml本地主機上的Symfony3和gmail

swiftmailer: 
    transport: gmail 
    host:  smtp.gmail.com 
    port:  465 
    username: [email protected] 
    password: mypassword 

parameters.yml

mailer_user: [email protected] 
mailer_password: password 

控制器

$message = \Swift_Message::newInstance() 
      ->setSubject('Hello Email') 
      ->setFrom('[email protected]') 
      ->setTo($email) 
      ->setBody(
       'You have been registered in MedicalGuide system as a doctor. Username: '.$user->getUsername().' Password: '. $user->getPassword() 
      ) 
     ; 
     $this->get('mailer')->send($message); 

但它不發送任何電子郵件。 任何人都可以幫助我嗎?也許我忘了一些東西,或者做錯了什麼。可以從本地主機發送電子郵件嗎?

UPDATE 日誌

Exception occurred while flushing email queue: Connection could not be established with host 127.0.0.1 
+0

根據http://symfony.com/doc/current/cookbook/email/gmail.html你不應該需要設置主機或端口,只是運輸的Gmail – user3802077

回答

0

您收到錯誤消息:

表明Swiftmailer似乎 「連接不能與主機127.0.0.1建立了」認爲它應該使用本地主機(127.0.0.1)發送郵件。

你的問題似乎是你指定的配置沒有被Swiftmailer組件讀入。我的猜測是環境沒有正確設置,所以你認爲你在dev,但相反,Symfony可能運行在不同的環境。

您可以通過將Swiftmailer配置放在主配置文件中進行測試,如果可行,請按照Symfony configuration guide的說法確保您的開發環境屬性已設置,並且您正在該環境中運行應用程序(即使用http://localhost/app_dev.php..

另一個有用的資源:How to Organize Configuration Files