我遇到了一个非常奇怪的问题。我正在通过我的网站向其他收件人发送电子邮件。在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
答案 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中的信息