1
我正在尝试向我的客户发送2K封电子邮件。我正在使用Amazon SES通过this库发送电子邮件。当我尝试使用附件发送电子邮件时,出现SimpleEmailService::sendEmail(): 35 Process open FD table is full
错误。我只是按照自述文件中给出的指示进行操作。仅更改凭据。任何帮助将不胜感激... :)FD表使用SES发送电子邮件时发生完整错误
编辑
近900封电子邮件,附件发送成功。但之后,它开始抛出错误。
附件是PDF类型。
编辑2
服务团队说,你是不是在发送邮件后关闭文件描述符。作业完成后,您需要关闭文件描述符。这样它不会用尽分配FD的数量的限制
这是我正在尝试的代码。
$mails = [
'[email protected]'
...
...
...
];
$ses = new SimpleEmailService('XXXXXXX', 'XXXXXXX');
$ses->enableVerifyPeer(false);
$m = new SimpleEmailServiceMessage();
foreach ($mails as $email) {
try {
$m->setFrom('From <[email protected]>');
$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();
}
}
*“服务团队说你发送邮件后没有关闭文件描述符。”*可能。您是否向每个收件人发送相同的PDF文件,或者您是单独生成它们并将它们邮寄到一个循环中?显示一些代码? –
@ Michael-sqlbot更新了问题 – Curious