我有以下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
我开始认为这可能是我安装的版本的问题。我试过没有成功直接创建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: ~
答案 0 :(得分:5)
你确定这不只是一个错字吗?
transport: stmp
=&GT;
transport: smtp
答案 1 :(得分:0)
如果有人要寻找答案:尝试使用setFrom()
方法设置有效的电子邮件地址;在我的情况下,虚假的电子邮件,如“noreply@domain.com”被假脱机,但交付失败。在指定有效地址后,它发送了一封电子邮件(最后!)。