Browse Source

l'envoi d'un email de test recupere l'erreur eventuelle et l'affiche en retour du formulaire, c'est plus smart que de dire qu'il faut consulter les logs

v3
cedric@yterium.com 7 years ago
parent
commit
4c954e03e3
  1. 2
      formulaires/configurer_facteur.html
  2. 40
      formulaires/configurer_facteur.php
  3. 2
      paquet.xml

2
formulaires/configurer_facteur.html

@ -2,7 +2,7 @@
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
[(#ENV{tester,''}|oui)
[(#ENV{tester,''}|et{#ENV*{message_erreur}|non})
<iframe style='width:95%;height:500px;margin:10px;' src='#URL_PAGE{emails/test_email_html,var_mode=calcul}'></iframe>
]
<form method="post" action="#ENV{action}"><div>

40
formulaires/configurer_facteur.php

@ -151,30 +151,54 @@ function formulaires_configurer_facteur_traiter_dist(){
// faut-il envoyer un message de test ?
if (_request('tester')){
$res = array();
$destinataire = _request('email_test');
if ((facteur_envoyer_mail_test($destinataire,_T('facteur:corps_email_de_test')))===true){
// OK
$res = array('message_ok'=>_T('facteur:email_test_envoye'));
$err = facteur_envoyer_mail_test($destinataire,_T('facteur:corps_email_de_test'));
if ($err) {
$res['message_erreur'] = $err;
}
else {
// erreur
$res = array('message_erreur'=>_T('facteur:erreur')._T('facteur:erreur_dans_log'));
$res['message_ok'] = _T('facteur:email_test_envoye');
}
}
return $res;
}
/**
* Fonction pour tester un envoi de mail ver sun destinataire
* renvoie une erreur eventuelle ou rien si tout est OK
* @param string $destinataire
* @param string $titre
* @return string
* message erreur ou vide si tout est OK
*/
function facteur_envoyer_mail_test($destinataire,$titre){
include_spip('classes/facteur');
$message_html = recuperer_fond('emails/test_email_html', array());
$message_texte = recuperer_fond('emails/test_email_texte', array());
$corps = array(
'html' => $message_html,
'texte' => $message_texte,
'exceptions' => true,
);
// passer par envoyer_mail pour bien passer par les pipeline et avoir tous les logs
$envoyer_mail = charger_fonction('envoyer_mail','inc');
$retour = $envoyer_mail($destinataire, $titre, array('html'=>$message_html,'texte'=>$message_texte));
try {
$retour = $envoyer_mail($destinataire, $titre, $corps);
}
catch (Exception $e) {
return $e->getMessage();
}
// si echec mais pas d'exception, on signale de regarder dans les logs
if (!$retour) {
return _T('facteur:erreur').' '._T('facteur:erreur_dans_log');
}
return $retour?true:false;
// tout est OK, pas d'erreur
return "";
}
?>

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="facteur"
categorie="communication"
version="3.2.1"
version="3.3.0"
etat="stable"
compatibilite="[3.0.0;3.1.*]"
logo="prive/themes/spip/images/facteur-32.png"

Loading…
Cancel
Save