我试图向客户发送2K电子邮件。我使用Amazon SES使用this库发送电子邮件。当我尝试使用附件发送电子邮件时,我收到SimpleEmailService::sendEmail(): 35 Process open FD table is full
错误。我只是按照自述文件中的说明进行操作。并且只更改了凭据。任何帮助将不胜感激...... :)
修改
近900封电子邮件已成功发送附件。但在那之后,它开始抛出错误。
附件的类型为PDF。
修改2
服务团队表示您在发送邮件后没有关闭文件描述符。您需要在作业完成后关闭文件描述符。这样它就不会用尽所分配的FD数量限制
以下是我尝试的代码。
$mails = [
'customer@email.com'
...
...
...
];
$ses = new SimpleEmailService('XXXXXXX', 'XXXXXXX');
$ses->enableVerifyPeer(false);
$m = new SimpleEmailServiceMessage();
foreach ($mails as $email) {
try {
$m->setFrom('From <example@email.com>');
$m->setSubject('Subject');
$m->setMessageFromString('','<p>This is the test email.</p>');
$m->addTo($email);
$atch = path to pdf;
$mime_type = @mime_content_type($atch);
$tmp = str_replace('\\','/', $atch);
$file_name = basename($tmp);
$m->addAttachmentFromFile($file_name, $atch, $mime_type);
$response = $ses->sendEmail($m,false,true);
$m->clearRecipients();
$m->attachments = [];
} catch (Exception $ex) {
echo $ex->getMessage();
}
}
答案 0 :(得分:1)
<强>解决强>
在$ses->setBulkMode(true);
之后添加了$ses->enableVerifyPeer(false);
。 ..:)