Maison >développement back-end >tutoriel php >Comment puis-je gérer efficacement les erreurs dans PHPMailer ?
Gestion des erreurs dans PHPMailer
La gestion des erreurs dans PHPMailer peut être un peu déroutante, surtout si vous n'êtes pas familier avec son fonctionnement. Par défaut, PHPMailer fera écho à toutes les erreurs rencontrées directement dans le navigateur, ce qui peut interrompre toute gestion des erreurs que vous implémentez.
Pour faire taire ces messages, vous pouvez utiliser la fonctionnalité d'exceptions de PHPMailer. Par défaut, PHPMailer n'est pas configuré pour lancer des exceptions, mais vous pouvez l'activer en définissant le paramètre exceptions sur true lors de la création d'une nouvelle instance PHPMailer.
Par exemple :
$mail = new PHPMailer(true);
Une fois que vous avez activé les exceptions, vous pouvez détecter toutes les erreurs qui se produisent à l'aide de blocs try/catch. Par exemple :
try { $mail->AddReplyTo('[email protected]', 'First Last'); $mail->AddAddress('[email protected]', 'John Doe'); $mail->SetFrom('[email protected]', 'First Last'); $mail->AddReplyTo('[email protected]', 'First Last'); $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically $mail->MsgHTML(file_get_contents('contents.html')); $mail->AddAttachment('images/phpmailer.gif'); // attachment $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment $mail->Send(); echo "Message Sent OK\n"; } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! }
En gérant les exceptions, vous pouvez empêcher PHPMailer de renvoyer les messages d'erreur au navigateur et les afficher de manière plus contrôlée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!