我使用yii-mail模块为Yii,它基于Swiftmailer。我试图在一封电子邮件中发送多个附件,但它似乎无法正常工作。
这是代码
$agbpath = 'path\\to\\file.pdf';
$agb1path = 'path\\to\\anotherfile.pdf';
$message = new YiiMailMessage;
$message->setSubject('TEST')
->setFrom(array('someone@test.com' => 'Someone'))
->setTo(array('recipient@test.com'))
->setBcc(array('copy@test.com'))
->setBody('LoremIpsum', 'text/html')
;
$message->attach(Swift_Attachment::fromPath("$agb1path"));
$message->attach(Swift_Attachment::fromPath("$agbpath"));
Yii::app()->mail->send($message);
两个文件都存在,但每次两个附件都包含相同的文件,但文件名不同。我尝试更改订单,这只会更改两个附件中发送的文件。
整个事情都在Windows Server 2008 R2上的Zend Server上运行。
如您所见,我甚至尝试使用硬编码值,因此表单中的错误不会对电子邮件本身产生任何影响。
提前感谢您的帮助。
答案 0 :(得分:2)
这是Windows操作系统上的一个问题。 解决此问题的方法是在附加文件之前禁用缓存。
Swift_Preferences::getInstance()->setCacheType('null');
答案 1 :(得分:0)
您更有可能以这种方式调用附件:
$message->attach($agb1path);
如果您使用Yii2,则附加方法已调用Swift_Attachment::fromPath
。我相信即使对于Yii1也是如此。