2017-09-22 2 views
1

J'essaie d'envoyer des courriels 2K à mes clients. J'utilise Amazon SES pour envoyer l'e-mail en utilisant la bibliothèque this. Lorsque j'essaie d'envoyer l'e-mail avec la pièce jointe, j'obtiens l'erreur SimpleEmailService::sendEmail(): 35 Process open FD table is full. Je viens de suivre les instructions données dans le fichier readme. Et changé les informations d'identification seulement. Toute aide sera appréciée ... :)FD Table est une erreur complète lors de l'envoi d'e-mail en utilisant SES

Modifier

Près de 900 e-mails avec la pièce jointe envoyée. Mais après cela, il commence à jeter l'erreur.

La pièce jointe est du type PDF.

Modifier 2

L'équipe de service dit que vous ne fermons pas le descripteur de fichier après l'envoi des mails. Vous devez fermer le descripteur de fichier une fois le travail terminé. De cette façon, il n'épuise pas la limite définie sur le nombre de FD assignés

Voici le code que j'essaie.

$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(); 
    } 
} 
+0

* "L'équipe de service indique que vous ne fermez pas le descripteur de fichier après l'envoi des mails." * Peut-être. Envoyez-vous le même fichier PDF à chaque destinataire, ou les générez-vous individuellement et les envoyez-vous, en boucle? Montrer du code? –

+0

@ Michael-sqlbot Mise à jour de la question – Curious

Répondre

1

SOLVED

vient d'être ajouté $ses->setBulkMode(true); après $ses->enableVerifyPeer(false);. .. :)