我有以下 swiftmailes 配置
# 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
假脱机中的所有消息都会消失,但不会发送给接收者。
注意:我已经尝试使用客户端(thunderbird)进行 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