使用 SES 发送电子邮件时 FD Table 是完全错误
FD Table is full error while sending email using SES
我正在尝试向我的客户发送 2K 封电子邮件。我正在使用 Amazon SES 通过 this 库发送电子邮件。当我尝试发送带有附件的电子邮件时,出现 SimpleEmailService::sendEmail(): 35 Process open FD table is full
错误。我只是按照自述文件中给出的说明进行操作。并且仅更改了凭据。任何帮助将不胜感激... :)
编辑
近 900 封带附件的电子邮件已成功发送。但在那之后,它开始抛出错误。
附件为 PDF 类型。
编辑 2
The service team says that you are not closing the file descriptor after sending the mails. You need to close the file descriptor after the job is done. That way it wont exhaust the limit set on the number of FDs assigned
这是我正在尝试的代码。
$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();
}
}
已解决
刚刚在 $ses->enableVerifyPeer(false);
之后添加了 $ses->setBulkMode(true);
。 ..:)
我正在尝试向我的客户发送 2K 封电子邮件。我正在使用 Amazon SES 通过 this 库发送电子邮件。当我尝试发送带有附件的电子邮件时,出现 SimpleEmailService::sendEmail(): 35 Process open FD table is full
错误。我只是按照自述文件中给出的说明进行操作。并且仅更改了凭据。任何帮助将不胜感激... :)
编辑
近 900 封带附件的电子邮件已成功发送。但在那之后,它开始抛出错误。
附件为 PDF 类型。
编辑 2
The service team says that you are not closing the file descriptor after sending the mails. You need to close the file descriptor after the job is done. That way it wont exhaust the limit set on the number of FDs assigned
这是我正在尝试的代码。
$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();
}
}
已解决
刚刚在 $ses->enableVerifyPeer(false);
之后添加了 $ses->setBulkMode(true);
。 ..:)