2013-02-25 4 views
2

Я столкнулся с очень странной проблемой. Я отправляю электронные письма через мой сайт другим получателям .it в symfony, и я очень новичок в этом. Вот мой кодПочему сервер smtp больше не отправляет электронные письма?

confg.yml

swiftmailer: 
transport: smtp 
host:  smtp.gmail.com 
encryption: ssl 
username: "myusername" 
password: "mypassword" 
spool:  { type: memory } 

здесь моя форма функция

public function formemailAction(Request $request) 
{ 
// create a task and give it some dummy data for this example 
     $newtask = new Task(); 
     $newtask->setsubject('add subject here'); 
     $newtask->setdescription("write your feed back here"); 
     $form = $this->createFormBuilder($newtask) 
      ->add('subject', 'text') 
      ->add('description', 'textarea') 
      ->getForm(); 

return $this->render('ServiceRequestBundle:Desk:shownotification.html.twig', array('form' => $form->createView(), 
)); 
} 

в виде щелкать отправить я звоню функцию, в которой я посылаю письмо

public function sendemailAction() 
    { 
     $messages = \Swift_Message::newInstance() 
      ->setSubject('again Notification Email') 
      ->setFrom('[email protected]') 
      ->setTo('[email protected]') 
      ->setBody("we know that you dont know whats happening") 
     ; 
     $this->get('mailer')->send($messages); 

     return $this->render('ServiceRequestBundle:Desk:shownotification.html.twig'); 
    } 

В настоящее время проблема в том, что она работала нормально. но после отправки от 4 до 5 писем он перестает работать, и мои письма больше не отправляются. моя первая догадка была, так как я отлаживаю свое приложение снова и снова, и может случиться, что это происходит только из-за того, что отправка электронной почты снова и снова. Я следую этому tutorial, если это так, то как я могу решить эту проблему, и если есть какие-то другие проблемы, любезно помогите мне.

я просматриваю журналы ошибок PHP и я нашел этот

#0 [internal function]: Symfony\Component\HttpKernel\Debug\ErrorHandler->handle(2, 'SessionHandler:...', 'C:\xampp\htdocs...', 558, Array) 
#1 C:\xampp\htdocs\jts\app\cache\dev\classes.php(558): SessionHandler->write('tatrpm617uplo16...', '_sf2_attributes...') 
#2 [internal function]: Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy->write('tatrpm617uplo16...', '_sf2_attributes...') 
#3 [internal function]: session_write_close() 
#4 {main} 
    thrown in C:\xampp\htdocs\jts\app\cache\dev\classes.php on line 
+0

есть дополнительный обратный слэш в вашем '' строке 1 sendemailAction() до 'Swift_Message'. Типо? – Raptor

+0

Я пробовал это, но все еще не работает. Я следую этому [tutorial] (http://symfony.com/doc/current/cookbook/email/email.html) – numerah

+1

сначала попробуйте простые PHP-коды. Попробуйте функцию 'mail()', чтобы узнать, работает ли SMTP-сервер или нет. – Raptor

ответ

2

Я думаю, что вам понадобится Relay, поскольку Gmail будет думать о своем спаме и может заблокировать ваш адрес.

Вы можете использовать PostFix на CentOS или в окнах вы можете установить SMTP-сервер

CentOS http://www.postfix.org/

WINDOWS: вы можете скачать SMTP сервер

http://www.microsoft.com/en-us/download/details.aspx?id=7887

и настроить с помощью этих TEPS

http://technet.microsoft.com/en-us/library/cc772058(WS.10).aspx

0

В случае Smtp транспорта, проверить журналы PHP, могут возникнуть проблемы с AUTH в Gmail. Вы пробовали tls вместо ssl?

Вы могли бы попытаться доставить почту через собственный SMTP-сервер:

Во-первых, вы должны проверить, есть ли сервер SMTP работает на сервере:

netstat -tulpen | grep :25 

Это должно вернуть что-то подобное, как это :

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 0 8485 1213/master 

Если нет, вы можете попробовать запустить сервер. В случае постфикса это:

/etc/init.d/postfix start 

Если вы все еще получаете не почту, проверьте

/var/log/maillog 

Это может быть, что письма не могут быть доставлены, вы должны увидеть больше Infos в MAILLOG

+0

Я использую окна. можете ли вы указать путь для окон? – numerah

+0

В окнах гораздо сложнее установить почтовый сервер. Вы должны попробовать, чтобы получить smtp gmail. Попробуйте использовать tls вместо ssl. –

Смежные вопросы