为什么smtp服务器不再发送电子邮件?

时间:2013-02-25 06:32:50

标签: php symfony smtp symfony-forms

我遇到了一个非常奇怪的问题。我正在通过我的网站向其他收件人发送电子邮件。在symfony中,我对此非常陌生。这是我的代码

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('myusername@gmail.com')
          ->setTo('username@gmail.com')
          ->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 

2 个答案:

答案 0 :(得分:2)

我认为你需要一个接力,因为Gmail会认为它的垃圾邮件可能阻止你的地址。

您可以在CentOS上使用PostFix,也可以在Windows中安装SMTP服务器

<强> CentOS的 http://www.postfix.org/

<强> WINDOWS: 您可以下载SMTP服务器

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

并使用这些步骤进行配置

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

答案 1 :(得分:0)

如果是smtp传输,请检查您的php日志,可能存在问题 在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

可能是邮件无法发送,您应该看到更多 maillog中的信息