如何在 Symfony2 中使用 Swiftmailer 将 PDF 附加到电子邮件

Posted

技术标签:

【中文标题】如何在 Symfony2 中使用 Swiftmailer 将 PDF 附加到电子邮件【英文标题】:How to attach PDF to email using Swiftmailer in Symfony2 【发布时间】:2014-09-26 15:08:24 【问题描述】:

我在 symfony2 中使用 swiftmailer 发送电子邮件,但我想将指定的 PDF 文件作为文件附件添加到电子邮件中。我该怎么做?

这是我当前的代码:

$message = \Swift_Message::newInstance()
    ->setSubject('Hello Email')
    ->setFrom('send@example.com')
    ->setTo('recipient@example.com')
    ->setBody(
        $this->renderView(
            'HelloBundle:Hello:email.txt.twig',
            array('name' => $name)
        )
    )
;
$this->get('mailer')->send($message);

【问题讨论】:

【参考方案1】:

您有多种选择可以使用 swift mailer 将文档附加到电子邮件中。

来自 symfony 文档:

    $message = Swift_Message::newInstance()
      ->setFrom('from@example.com')
      ->setTo('to@example.com')
      ->setSubject('Subject')
      ->setBody('Body')
      ->attach(Swift_Attachment::fromPath('/path/to/a/file.zip'))
    ;

$this->getMailer()->send($message);

【讨论】:

我必须在 setBody() 之前写 ->attach()【参考方案2】:

如果你想从缓冲区上传文件,你可以这样做:

$attach=getPdfFunction(); //binary
Swift_Attachment::newInstance($attach, 'document.pdf','application/pdf');

【讨论】:

【参考方案3】:

您可以使用此行添加附件:

$message->attach(\Swift_Attachment::fromPath($attach));

【讨论】:

【参考方案4】:

下面的代码应该做到这一点:

$attachment = \Swift_Attachment::fromPath('subpath/to/attachment');
$message->attach($attachment);

【讨论】:

以上是关于如何在 Symfony2 中使用 Swiftmailer 将 PDF 附加到电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

symfony2:如何在 QueryBuilder 中使用 group_concat

如何在 Symfony2 中使用 setter 设置表单字段值

如何在 Symfony2 中使用 Swiftmailer 将 PDF 附加到电子邮件

如何在 symfony2 中提交表单 ajax?

如何在 Symfony2 中使用 LIKE 数据库查询

如何在 Symfony2 中保存视图中的数据