Pb messagerie sous PHP5
masterchris
Messages postés
90
Statut
Membre
-
masterchris Messages postés 90 Statut Membre -
masterchris Messages postés 90 Statut Membre -
Bonjour,
dans une partie de mon site j'envoie des mails aux utilisateurs pour les informés que leur traitements sont OK, j'utilise la fonction mail de php et j'ai configuré le serveur SMTP. Quand ce serveur mail est disponible tout fonctionne bien, mais quand pour une raison ou une autre il n'est pas accessible une page d'erreur est générée et les utilisateurs sont bloqués sur cette page. Ma question est la suivante:
Y a t'il un moyen de tester si le serveur mail est disponible avant d'utiliser la fonction mail de php ppour éviter l'erreur?
Sinon est-il possible de capturer l'erreur (try-catch en java) pour capturer l'erreur et afficher un message à l'utilisateur?
J'utilise Apache 2.2 et PHP5
dans une partie de mon site j'envoie des mails aux utilisateurs pour les informés que leur traitements sont OK, j'utilise la fonction mail de php et j'ai configuré le serveur SMTP. Quand ce serveur mail est disponible tout fonctionne bien, mais quand pour une raison ou une autre il n'est pas accessible une page d'erreur est générée et les utilisateurs sont bloqués sur cette page. Ma question est la suivante:
Y a t'il un moyen de tester si le serveur mail est disponible avant d'utiliser la fonction mail de php ppour éviter l'erreur?
Sinon est-il possible de capturer l'erreur (try-catch en java) pour capturer l'erreur et afficher un message à l'utilisateur?
J'utilise Apache 2.2 et PHP5
A voir également:
- Pb messagerie sous PHP5
- Hotmail messagerie - Guide
- Messagerie double - Guide
- Cette adresse de messagerie fait partie d’un domaine réservé. entrez une autre adresse de messagerie - Forum Hotmail / Outlook.com
- Centre de messagerie - Guide
- Messagerie gmail saturée - Guide
Y a t il une classe à invoquer avant d'utiliser ton code?
La solution de Duskii est plus simple à comprendre et à utiliser.
/** * @desc Notre classe d'exception pour les erreurs PHP */ class MyPHPException extends Exception { /** * @desc Constructeur */ public function __construct($msg, $code, $file, $line, $context) { $this->message = $msg; $this->code = $code; $this->line = $line; $this->file = $file; $this->context = $context; parent::__construct($msg, $code); } /** * @desc Affichage de l'erreur */ public function showError() { echo 'PHP a généré l\'erreur système suivante : ['.$this->code.' | '. $this->getMessage().'] à la ligne '. $this->line.' du fichier '.$this->file; // $Mytrace contient le contexte de l'exception // $this->context contient le contexte de l'erreur $Mytrace = $this->getTrace(); //print_r($Mytrace); if ( ! empty($Mytrace['1']['function'] )) { echo ' sur la fonction '.$Mytrace['1']['function']; } echo '<br /><br/>Contexte lors de l\'erreur :<br/><pre>'; print_r($this->context); echo '</pre>'; } } /** * @desc la fonction de callback, chargée de lancer l'exception */ function errorToException($code, $msg, $file, $line, $context) { throw new MyPHPException($msg, $code, $file, $line, $context); } // redéfinition de la gestion d'erreur set_error_handler('errorToException'); // Enfin, notre script try { mail(....,...,...); } catch (MyPHPException $myPHPException) { echo '<div style="color:red">'.$myPHPException->showError().'</div>'; }Encore merci à tous