【问题标题】:Swiftmailer is using the same file for multiple attachmentsSwiftmailer 对多个附件使用同一个文件
【发布时间】:2014-08-23 11:22:34
【问题描述】:

我正在使用基于 Swiftmailer 的 Yii 的 yii-mail 模块。我试图在一封电子邮件中发送多个附件,但它似乎无法正常工作。

这是代码

 $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 上运行。

如您所见,我什至尝试使用硬编码值,这样表单中的错误不会对电子邮件本身产生任何影响。

提前感谢您的帮助。

【问题讨论】:

    标签: yii swiftmailer


    【解决方案1】:

    您更有可能必须以这种方式调用附件:

    $message->attach($agb1path);
    

    如果你在 Yii2 上,attach 方法已经调用了Swift_Attachment::fromPath。我相信即使对于 Yii1 也是如此

    【讨论】:

      【解决方案2】:

      这是 Windows 操作系统的问题。 解决方法是在附加文件之前禁用缓存。

      Swift_Preferences::getInstance()->setCacheType('null');
      

      【讨论】:

      • 也为 Symfony 2.7.6 确认这一点
      猜你喜欢
      • 2011-09-01
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      相关资源
      最近更新 更多