Magento2发送多个PDF附件电子邮件
时间: 2023-08-30 18:04:12 浏览: 59
要在Magento2中发送多个PDF附件电子邮件,您需要按照以下步骤进行操作:
1. 创建一个自定义模块,并在其中添加一个observer,以便在发送电子邮件时添加多个附件。您可以使用以下命令创建自定义模块:
```
php bin/magento module:create <Vendor>_<Module>
```
2. 在您的自定义模块中创建一个Observer类,并在其中添加以下代码:
```
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
class AddMultipleAttachments implements ObserverInterface
{
protected $_filesystem;
public function __construct(
\Magento\Framework\Filesystem $filesystem
) {
$this->_filesystem = $filesystem;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$transport = $observer->getTransport();
$attachments = array(
'file1.pdf',
'file2.pdf',
'file3.pdf'
);
$directory = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA);
foreach ($attachments as $attachment) {
$filePath = 'pdf/' . $attachment;
if ($directory->isExist($filePath)) {
$fileAbsolutePath = $directory->getAbsolutePath($filePath);
$fileContent = file_get_contents($fileAbsolutePath);
$transport->addAttachment(
$fileContent,
$attachment
);
}
}
}
}
```
这将检查是否存在名为'pdf'的目录,并将文件名为'file1.pdf'、'file2.pdf'和'file3.pdf'的文件作为附件添加到电子邮件中。
3. 在您的自定义模块的di.xml文件中添加以下代码,以便将Observer类与电子邮件发送事件关联起来:
```
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="email_before_send">
<observer name="add_multiple_attachments" instance="<Vendor>\<Module>\Observer\AddMultipleAttachments" />
</event>
</config>
```
现在,当您发送电子邮件时,这些PDF附件将作为附件添加到电子邮件中。