我在Symfony2中创建了一个联系表单。我想通过电子邮件发送它,我也希望通过Symfony2将内容保存在数据库中,为此我创建了一个表单。保存到数据库中工作正常,但我从未在生产服务器上收到电子邮件。
public function createAction(Request $request) {
$entity = new Contact();
$form = $this -> createCreateForm($entity);
$form -> handleRequest($request);
$message = \Swift_Message::newInstance() -> setSubject('Hello Email') -> setFrom('newsletter@donaci.ch') -> setTo('me@joelschmid.ch') -> setBody($this -> renderView('DbeDonaciBundle:Contact:email.html.twig', array('entity' => $entity)));
$this -> get('mailer') -> send($message);
$em = $this -> getDoctrine() -> getManager();
$em -> persist($entity);
$em -> flush();
$this -> get('session') -> getFlashBag() -> add('messageSent', 'Die Nachricht wurde erfolgreich abgeschickt. Wir werden uns sobald als möglich bei dir melden!');
return $this -> render('DbeDonaciBundle:Aboutus:index.html.twig', array('entity' => $entity, 'form' => $form -> createView(), ));
}
在本地,这似乎有效,如果我访问开发人员工具栏中的消息块,我已准备好电子邮件:
Mailer default (default mailer)
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=utf-8
MIME-Version: 1.0
Date: Tue, 04 Mar 2014 10:54:07 +0100
Message-ID: <725cbd36eaafdc75ede3eeb016a60b1d@localhost>
From: newsletter@donaci.ch
Subject: Hello Email
To: me@joelschmid.ch
A contact enquiry was made by asdf at 2014-03-04 10:54.
Reply-To: asdf@memememe.com
Subject: asdf
Body:
Name: asdf
E-Mail: asdf@memememe.com
Message: asdf
Website: asdf
如果执行:
,假脱机中也没有电子邮件php app/console swiftmailer:spool:send
以下是带有mailjet的调整后的配置文件:
mailer_transport: smtp
mailer_host: in.mailjet.com
mailer_user: 3d32164c00c29asdflkjabf2d1e45b
mailer_password: 342f84sdaj7a3d374eb85523dfad246
locale: en
secret: 34af84cbbb7a3d12li552cfgad246
有什么想法吗?在此先感谢您的帮助!
答案 0 :(得分:1)
它应该与smtp服务器有关:如果symfony debug向你显示邮件,那肯定是这个。
尝试使用专用的smtp服务(例如mailjet(www.mailjet.com))处理您的电子邮件发送。