2

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

配置文件

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 封电子邮件后,它停止工作,我的电子邮件不再发送。我的第一个猜测是因为我一次又一次地调试我的应用程序,并且可能只是因为一次又一次地发送相同的电子邮件而发生这种情况。如果是这样,我会按照本教程进行操作,那么我该如何解决这个问题,如果还有其他问题,请帮助我。

我检查了我的 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 
4

2 回答 2

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

于 2013-02-25T08:23:56.160 回答
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

可能是邮件无法投递,您应该在邮件日志中看到更多信息

于 2013-02-25T07:23:50.563 回答