2013-07-04 127 views
0

我正在開發一個symfony 2.2項目站點,我在其中使用swift郵件發送郵件; 在Parameter.yml,配置如下:Symfony2.2 Swiftmailer無法在AWS-EC2服務器上工作服務器站點

database_driver: pdo_mysql 
database_host:  localhost 
database_port:  null 
database_name:  My_Project_Name 
database_user:  username 
database_password: userpass 

mailer_transport: gmail 
mailer_host:  smtp.gmail.com 
mailer_encryption: ssl 
mailer_auth_mode: login 
mailer_user:  [email protected] 
mailer_password: my_gmail_account_password 

locale:   en 
secret:   my_secret 
database_path:  null 

,我的郵件程序如下:

 $message = \Swift_Message::newInstance() 
     ->setSubject("Subject_description") 
     ->setFrom("[email protected]") 
     ->setTo("[email protected]") 
     ->setBody("message_body"); 

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

它的工作完全在本地主機,但在項目工地現場是AWS-EC2服務器上,它沒有給出任何錯誤並給出關於完全發送郵件的成功通知消息,但實際上沒有在[email protected]上收到電子郵件。我不知道我的配置有什麼問題嗎?

如果任何機構有關於這個問題的想法,請讓我知道,這將非常感激!

+0

您是否試過檢查郵件的垃圾郵件文件夾? Aws IP通常被列入黑名單 – alex88

回答

0

經過許多幫助鏈接提取我的腦海之後,我終於找到了解決辦法,如下所示:

# app/config/parameter.yml 
swiftmailer: 
transport: smtp 
host:  email-smtp.us-east-1.amazonaws.com 
username: AWS_ACCESS_KEY 
password: AWS_SECRET_KEY 
encryption: tls 
port:  25 

和梅勒:

$renderedLines = explode("\n", trim($renderedTemplate)); 
    $subject = $renderedLines[0]; 
    $body = implode("\n", array_slice($renderedLines, 1)); 
    $transport = \Swift_SmtpTransport::newInstance('email-smtp.us-east-1.amazonaws.com', 
    25, 
    'tls')->setUsername('aws_key')->setPassword('aws_secret'); 
    $innerMailer = \Swift_Mailer::newInstance($transport); 
    $message = \Swift_Message::newInstance() 
     ->setSubject('My_Project_Title_Subject') 
     ->setFrom(array('[email protected]' => 'Reference Name')) 
     ->setTo("[email protected]") 
     ->setBody($body, 'text/html'); 

    $innerMailer->send($message); 

它的工作終於來了!

希望它能幫助別人!

相關問題