Swiftmailer symfony2.2总是发送0封电子邮件

时间:2013-06-04 18:37:29

标签: php symfony swiftmailer

我有以下swiftmailes config

# config.yml
swiftmailer:
    transport: stmp
    host:      mail.domain.com
    port:      25
    username:  myuser
    password:  mypass
    spool:
        type: file
        path: "%kernel.cache_dir%/swiftmailer/spool"
    logging:  "%kernel.debug%"

以及以下发送消息的代码

$subject = "TESTING";

$mailer = $this->getContainer()->get('mailer');
$message = \Swift_Message::newInstance()
    ->setSubject($subject)
    ->setFrom("noreply@domain.com")
    ->setTo("julian.reyes.escrigas@gmail.com")
    ->setBody("Body message");

$mailer->send($message);

发送消息后,这可以在app/cache/dev/swiftmailer/spool中建立,但是当我调用命令

$ app/console swiftmailer:spool:send --message-limit=10 --env=dev

假脱机中的所有消息都会消失,但不会发送给接收方。

注意:我已尝试使用客户端(雷鸟)进行STMP设置并正常工作


测试

出于测试目的,我试图直接发送没有队列的消息

$message = \Swift_Message::newInstance()
    ->setSubject($subject)
    ->setFrom("noreply@domain.com")
    ->setTo("julian.reyes.escrigas@gmail.com")
    ->setBody("Body message");

$mailer->send($message);

$transport  = $this->getContainer()->get('swiftmailer.transport.real');
$transport->start();

// but count alwasy is zero
$count = $transport->send($message);

我已尝试过config.yml文件中的所有组合

auth_mode:  plain / login / null
encryption: tsl / ssl / null
port: 25 / 465

来自symfony profiler我得到了

Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=utf-8
MIME-Version: 1.0
Date: Tue, 04 Jun 2013 14:33:12 -0500
Message-ID: <1370374392.51ae40f8b6202@localtest>
From: noreply@mydomain.com
Subject: TEST
To: julian.reyes.escrigas@gmail.com
Mensaje de prueba de Texto

测试2

我开始认为这可能是我安装的版本的问题。我试过没有成功直接创建SMTP传输

$message = \Swift_Message::newInstance()
    ->setSubject("TEST")
    ->setFrom("noreply@domain.com")
    ->setTo(array("julian.reyes.escrigas@gmail.com"))
    ->setBody("Mensaje de prueba de Texto");


$transport = \Swift_SmtpTransport::newInstance('mail.domain.com', 25)
    ->setUsername('noreply@domain.com')
    ->setPassword('THEPASS');

$mailer = \Swift_Mailer::newInstance($transport);

$transport->start();
// ZERO again
$output->writeln(sprintf("Mensajes enviados: %s", $mailer->send($message)));

注意2 :我尝试过使用PHpMailer并使用相同的设置发送邮件没有问题,但我想使用swiftmailer

注意3 :使用本地设置在我的托管服务提供商上进行测试工作正常。但我无法使用棘手的ssh隧道从我自己的笔记本电脑(开发环境)进行测试

transport: mail
host: localhost
username: ~
password: ~
  • PHP 5.4.6
  • Symfony 2.2.2
  • Swiftmailer 5.0

2 个答案:

答案 0 :(得分:5)

你确定这不只是一个错字吗?

transport: stmp

=&GT;

transport: smtp

答案 1 :(得分:0)

如果有人要寻找答案:尝试使用setFrom()方法设置有效的电子邮件地址;在我的情况下,虚假的电子邮件,如“noreply@domain.com”被假脱机,但交付失败。在指定有效地址后,它发送了一封电子邮件(最后!)。