Php Symfony2 SwiftMailer发送邮件传输错误

Php Symfony2 SwiftMailer发送邮件传输错误,php,forms,symfony,swiftmailer,Php,Forms,Symfony,Swiftmailer,我希望实施者在我的网站上有一个联系表。 我遵循symfony2文档: 我使用symfony 2.3.3 这就是我的配置_dev.yml: swiftmailer: transport: sendmail 我的联系人操作控制器: public function contactAction(Request $request) { $this->focus = "contact"; $form = $this->createFormBu

我希望实施者在我的网站上有一个联系表。 我遵循symfony2文档:

我使用symfony 2.3.3

这就是我的配置_dev.yml:

swiftmailer:
    transport: sendmail
我的联系人操作控制器:

 public function contactAction(Request $request)
    {
        $this->focus = "contact";

        $form = $this->createFormBuilder()
            ->add('Sujet:', 'text')
            ->add('Service:', 'choice',
                array(
                    'choices' =>
                        array(
                            'all' => 'Communication multi-canaux (plusieurs services liés)',
                            'web' => 'Développement Web',
                            'webMarketing' => 'Web Marketing',
                            'mobile' => 'Développement mobile / tablette',
                            'brand' => 'Brand design',
                            'event' => 'Evènementiel',
                            'print' => 'Campagne print',
                        ),

                    'preferred_choices' => array('all'),
                )
            )
            ->add('Nom:', 'text')
            ->add('Societe:', 'text')
            ->add('Courriel:', 'email')
            ->add('message:', 'textarea')
            ->getForm();

        $form->handleRequest($request);

        if ($form->isValid()) {
            // Les données sont un tableau avec les clés "name", "email", et "message"
            $data = $form->getData();
            $message = \Swift_Message::newInstance()
                ->setSubject($data['Sujet'] . $data['Société'])
                ->setFrom($data['Courriel'])
                ->setTo('contact@visual-immersion.com')
                ->setBody($this->renderView('text à placer par la suite'))
            ;
            $this->get('mailer')->send($message);
        }

        $this->get('mailer')->send($message);
        return $this->render('VisualImmersionSiteBundle:Site:contact.html.twig',
            array(
                'focus' => $this->focus,
                'form'   => $form->createView(),
            ));
    }
我有一个错误:

可捕获致命错误:参数2传递给 Swift_Transport_SendmailTransport::_构造()必须实现 接口Swift\u Events\u EventDispatcher,的实例 Swift\u Transport\u StreamBuffer已给定,已呼叫 /var/www/visualimmersion/app/cache/dev/appDevDebugProjectContainer.php 第2129行,并在中定义 /var/www/visualimmersion/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/SendmailTransport.php 第42行

我绝对找不到问题所在。你有什么想法,或者你经历过这个错误吗

谢谢你的帮助

更新:

我在composer中将SwiftMailer软件包降级为2.3.2版本。问题已经解决了,但是现在,我收到了这个错误消息

预期响应代码为220,但获得代码“”,消息为“”


有什么想法吗

这似乎是2.3.3的一个bug。下面是一个讨论这件事的例子

这里的解决方案似乎是将
composer.json
中的swiftmailer捆绑包依赖项从2.3.3更改为2.3.2:

"symfony/swiftmailer-bundle": "2.3.2"

这似乎是2.3.3中的一个bug。下面是一个讨论这件事的例子

这里的解决方案似乎是将
composer.json
中的swiftmailer捆绑包依赖项从2.3.3更改为2.3.2:

"symfony/swiftmailer-bundle": "2.3.2"

原因是服务器中的sendmail功能不正确

您可以使用以下命令进行测试:telnet localhost 25


如果您使用的是Linux服务器。您应该安装Postfix,因为SSMTP不支持telnet,而SwitMail在发送电子邮件之前总是检查telnet。

原因是服务器中的sendmail功能不正确

您可以使用以下命令进行测试:telnet localhost 25


如果您使用的是Linux服务器。您应该安装Postfix,因为SSMTP不支持telnet,而SwitfMailer在发送电子邮件之前总是检查telnet。

ok将swiftMailer降级为推荐的2.3.2版本。现在,我有一个错误:预期的响应代码为220,但得到了代码“”,带有消息“”。使用传输确定:config_dev.yml中的邮件,没有错误。但是我的邮箱中没有收到邮件:sI在apache日志中发现了以下错误:“sendmail:选项需要一个参数--‘f’sendmail:fatal:open/etc/postfix/main.cf:没有这样的文件或目录”确定将swiftMailer降级为推荐的2.3.2版本。现在,我有一个错误:预期的响应代码为220,但得到了代码“”,带有消息“”。使用传输确定:config_dev.yml中的邮件,没有错误。但是我的邮箱中没有收到邮件:sI在apache日志中发现了以下错误:“sendmail:选项需要一个参数--“f”sendmail:fatal:open/etc/postfix/main.cf:没有这样的文件或目录”在我看来,swiftmailer库问题现在已经解决了,但是如果
sendmail
mail
传输引起错误或不发送电子邮件,我猜您的服务器仍然存在一些配置问题。响应代码
220
服务就绪。。。所以这不是真的。可惜没有实际的响应代码!你能告诉我更多关于你使用的环境吗?我发现了一个[答案很有趣-可能值得一看?这表明可能存在空行问题-我不知道,但您可以使用Symfony web profiler查看您发送的邮件的格式。或者,如果您的环境存在持续问题,请查看通过gmail甚至Mandrill使用SMTP,后者是transactional email service(来自MailChimp),每月为您提供13000封免费邮件。@Darragh my dev env是使用php 5.4.9的ubuntu服务器13.04。我尝试过gmail传输,但我“无法发送没有发件人地址的邮件500内部服务器错误-Swift_TransportException”错误。可能我的设置为false?在不知道中…在我看来,swiftmailer库问题现在已经解决,但我猜如果
sendmail
mail
传输引发错误或不发送电子邮件,您的服务器仍然存在一些配置问题。响应代码
220
已准备好服务…因此不是。可惜没有实际的响应代码!你能告诉我更多关于你使用的环境吗?我发现了一个[答案很有趣-可能值得一看?这表明可能存在空行问题-我不知道,但您可以使用Symfony web profiler查看您发送的邮件的格式。或者,如果您的环境存在持续问题,请查看通过gmail甚至Mandrill使用SMTP,后者是transactional email service(来自MailChimp),每月为您提供13000封免费邮件。@Darragh my dev env是使用php 5.4.9的ubuntu服务器13.04。我尝试了gmail传输,但我出现了“无法发送没有发件人地址的邮件500内部服务器错误-Swift_TransportException”错误。也许我的设置为false?在不知道。。。