[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / facteur / formulaires / configurer_facteur.php
index aa46e78..2b731d1 100644 (file)
-<?php\r
-/*\r
- * Plugin Facteur 2\r
- * (c) 2009-2011 Collectif SPIP\r
- * Distribue sous licence GPL\r
- *\r
- */\r
-\r
-if (!defined("_ECRIRE_INC_VERSION")) return;\r
-\r
-function formulaires_configurer_facteur_charger_dist(){\r
-       include_spip('inc/config');\r
-       $valeurs = array(\r
-               'facteur_adresse_envoi'       => lire_config('facteur_adresse_envoi'),\r
-               'facteur_adresse_envoi_nom'   => lire_config('facteur_adresse_envoi_nom'),\r
-               'facteur_adresse_envoi_email' => lire_config('facteur_adresse_envoi_email'),\r
-               'facteur_forcer_from'         => lire_config('facteur_forcer_from'),\r
-               'facteur_smtp'                => lire_config('facteur_smtp'),\r
-               'facteur_smtp_host'           => lire_config('facteur_smtp_host'),\r
-               'facteur_smtp_port'           => lire_config('facteur_smtp_port', 25),\r
-               'facteur_smtp_auth'           => lire_config('facteur_smtp_auth'),\r
-               'facteur_smtp_username'       => lire_config('facteur_smtp_username'),\r
-               'facteur_smtp_password'       => '',\r
-               '_facteur_smtp_password'       => lire_config('facteur_smtp_password'),\r
-               'facteur_smtp_secure'         => lire_config('facteur_smtp_secure'),\r
-               'facteur_smtp_sender'         => lire_config('facteur_smtp_sender'),\r
-               'facteur_filtre_images'       => lire_config('facteur_filtre_images'),\r
-               'facteur_filtre_iso_8859'     => lire_config('facteur_filtre_iso_8859'),\r
-               'facteur_cc'                  => lire_config('facteur_cc'),\r
-               'facteur_bcc'                 => lire_config('facteur_bcc'),\r
-               '_enable_smtp_secure'         => (intval(phpversion()) == 5)?' ':'',\r
-               'email_test'                  => lire_config('facteur_adresse_envoi')=='oui'?lire_config('facteur_adresse_envoi_email'):$GLOBALS['meta']['email_webmaster'],\r
-               'tester'                      => '',\r
-       );\r
-\r
-       // recuperer le from par defaut actuel pour l'indiquer dans le formulaire\r
-       include_spip('classes/facteur');\r
-       $facteur = new Facteur('test@example.org','Test','','',array('adresse_envoi'=>'non'));\r
-       $valeurs['_from_defaut'] = $facteur->From;\r
-       if ($facteur->FromName){\r
-               $valeurs['_from_defaut'] = $facteur->FromName . ' &lt;'.$valeurs['_from_defaut'].'&gt;';\r
-       }\r
-\r
-       return $valeurs;\r
-}\r
-\r
-function formulaires_configurer_facteur_verifier_dist(){\r
-       $erreurs = array();\r
-       include_spip('inc/config');\r
-       if ($email = _request('facteur_adresse_envoi_email')\r
-         AND !email_valide($email)) {\r
-               $erreurs['facteur_adresse_envoi_email'] = _T('form_email_non_valide');\r
-               set_request('facteur_adresse_envoi','oui');\r
-       }\r
-       if (_request('facteur_smtp')=='oui'){\r
-               if (!($h=_request('facteur_smtp_host')))\r
-                       $erreurs['facteur_smtp_host'] = _T('info_obligatoire');\r
-               else {\r
-                       $h = trim($h);\r
-                       $regexp_ip_valide = '#^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$#'; \r
-                       // Source : http://www.d-sites.com/2008/10/09/regex-ipv4-et-ipv6/\r
-                       if (!preg_match($regexp_ip_valide,$h)){ // ce n'est pas une IP\r
-                               if(!preg_match(';^([^.\s/?:]+[.])*[^.\s/?:]+$;',$h)\r
-                                 OR gethostbyname($h)==$h)\r
-                                       $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');\r
-                       }\r
-                       else {\r
-                               if (gethostbyaddr($h)==$h)\r
-                                       $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');\r
-                       }\r
-                       set_request('facteur_smtp_host',$h);\r
-               }\r
-               if (!($p=_request('facteur_smtp_port')))\r
-                       $erreurs['facteur_smtp_port'] = _T('info_obligatoire');\r
-               elseif(!preg_match(';^[0-9]+$;',$p) OR !intval($p))\r
-                       $erreurs['facteur_smtp_port'] = _T('facteur:erreur_invalid_port');\r
-\r
-               if (!_request('facteur_smtp_auth'))\r
-                       $erreurs['facteur_smtp_auth'] = _T('info_obligatoire');\r
-\r
-               if (_request('facteur_smtp_auth')=='oui'){\r
-                       if (!_request('facteur_smtp_username'))\r
-                               $erreurs['facteur_smtp_username'] = _T('info_obligatoire');\r
-                       if (!_request('facteur_smtp_password') AND !lire_config('facteur_smtp_password'))\r
-                               $erreurs['facteur_smtp_password'] = _T('info_obligatoire');\r
-               }\r
-       }\r
-       if ($emailcc = _request('facteur_cc')\r
-         AND !email_valide($emailcc)) {\r
-               $erreurs['facteur_cc'] = _T('form_email_non_valide');\r
-       }\r
-       if ($emailbcc = _request('facteur_bcc')\r
-         AND !email_valide($emailbcc)) {\r
-               $erreurs['facteur_bcc'] = _T('form_email_non_valide');\r
-       }\r
-\r
-       if (_request('tester')){\r
-               if (!$email = _request('email_test')){\r
-                       $erreurs['email_test'] = _T('info_obligatoire');\r
-               }\r
-               elseif (!email_valide($email)) {\r
-                       $erreurs['email_test'] = _T('form_email_non_valide');\r
-               }\r
-       }\r
-\r
-       \r
-       if(count($erreurs)>0){\r
-               $erreurs['message_erreur'] = _T('facteur:erreur_generale');\r
-       }\r
-       return $erreurs;\r
-}\r
-\r
-function formulaires_configurer_facteur_traiter_dist(){\r
-       include_spip('inc/meta');\r
-\r
-       $facteur_adresse_envoi = _request('facteur_adresse_envoi');\r
-       ecrire_meta('facteur_adresse_envoi', ($facteur_adresse_envoi=='oui')?'oui':'non');\r
-\r
-       $facteur_adresse_envoi_nom = _request('facteur_adresse_envoi_nom');\r
-       ecrire_meta('facteur_adresse_envoi_nom', $facteur_adresse_envoi_nom?$facteur_adresse_envoi_nom:'');\r
-\r
-       $facteur_adresse_envoi_email = _request('facteur_adresse_envoi_email');\r
-       ecrire_meta('facteur_adresse_envoi_email', $facteur_adresse_envoi_email?$facteur_adresse_envoi_email:'');\r
-\r
-       $facteur_forcer_from = _request('facteur_forcer_from');\r
-       ecrire_meta('facteur_forcer_from', ($facteur_forcer_from=='oui')?'oui':'non');\r
-\r
-       $facteur_smtp = _request('facteur_smtp');\r
-       ecrire_meta('facteur_smtp', ($facteur_smtp=='oui')?'oui':'non');\r
-\r
-       $facteur_smtp_host = _request('facteur_smtp_host');\r
-       ecrire_meta('facteur_smtp_host', $facteur_smtp_host?$facteur_smtp_host:'');\r
-\r
-       $facteur_smtp_port = _request('facteur_smtp_port');\r
-       ecrire_meta('facteur_smtp_port', strlen($facteur_smtp_port)?intval($facteur_smtp_port):'');\r
-\r
-       $facteur_smtp_auth = _request('facteur_smtp_auth');\r
-       ecrire_meta('facteur_smtp_auth', ($facteur_smtp_auth=='oui')?'oui':'non');\r
-\r
-       $facteur_smtp_username = _request('facteur_smtp_username');\r
-       ecrire_meta('facteur_smtp_username', $facteur_smtp_username);\r
-\r
-       if ($facteur_smtp_password = _request('facteur_smtp_password')) {\r
-               ecrire_meta('facteur_smtp_password', $facteur_smtp_password);\r
-       }\r
-\r
-       if (intval(phpversion()) == 5) {\r
-               $facteur_smtp_secure = _request('facteur_smtp_secure');\r
-               ecrire_meta('facteur_smtp_secure', in_array($facteur_smtp_secure,array('non','ssl','tls'))?$facteur_smtp_secure:'non');\r
-       }\r
-\r
-       $facteur_smtp_sender = _request('facteur_smtp_sender');\r
-       ecrire_meta('facteur_smtp_sender', $facteur_smtp_sender);\r
-\r
-       ecrire_meta('facteur_filtre_images', intval(_request('facteur_filtre_images')));\r
-       ecrire_meta('facteur_filtre_iso_8859', intval(_request('facteur_filtre_iso_8859')));\r
-\r
-       $facteur_cc = _request('facteur_cc');\r
-       ecrire_meta('facteur_cc', $facteur_cc?$facteur_cc:'');\r
-\r
-       $facteur_bcc = _request('facteur_bcc');\r
-       ecrire_meta('facteur_bcc', $facteur_bcc?$facteur_bcc:'');\r
-       \r
-       \r
-       $res = array('message_ok'=>_T('facteur:config_info_enregistree'));\r
-\r
-       // faut-il envoyer un message de test ?\r
-       if (_request('tester')){\r
-               $res = array();\r
-               $destinataire = _request('email_test');\r
-               $err = facteur_envoyer_mail_test($destinataire,_T('facteur:corps_email_de_test'));\r
-               if ($err) {\r
-                       $res['message_erreur'] = $err;\r
-               }\r
-               else {\r
-                       $res['message_ok'] = _T('facteur:email_test_envoye');\r
-               }\r
-       }\r
-       \r
-       return $res;\r
-}\r
-\r
-/**\r
- * Fonction pour tester un envoi de mail ver sun destinataire\r
- * renvoie une erreur eventuelle ou rien si tout est OK\r
- * @param string $destinataire\r
- * @param string $titre\r
- * @return string\r
- *   message erreur ou vide si tout est OK\r
- */\r
-function facteur_envoyer_mail_test($destinataire,$titre){\r
-\r
-       include_spip('classes/facteur');\r
-       $message_html   = recuperer_fond('emails/test_email_html', array());\r
-       $message_texte  = recuperer_fond('emails/test_email_texte', array());\r
-       $corps = array(\r
-               'html' => $message_html,\r
-               'texte' => $message_texte,\r
-               'exceptions' => true,\r
-       );\r
-\r
-       // passer par envoyer_mail pour bien passer par les pipeline et avoir tous les logs\r
-       $envoyer_mail = charger_fonction('envoyer_mail','inc');\r
-       try {\r
-               $retour = $envoyer_mail($destinataire, $titre, $corps);\r
-       }\r
-       catch (Exception $e) {\r
-               return $e->getMessage();\r
-       }\r
-\r
-       // si echec mais pas d'exception, on signale de regarder dans les logs\r
-       if (!$retour) {\r
-               return _T('facteur:erreur').' '._T('facteur:erreur_dans_log');\r
-       }\r
-\r
-       // tout est OK, pas d'erreur\r
-       return "";\r
-}\r
-?>\r
+<?php
+/**
+ * Plugin Facteur 2
+ * (c) 2009-2011 Collectif SPIP
+ * Distribue sous licence GPL
+ *
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
+
+function formulaires_configurer_facteur_charger_dist() {
+       include_spip('inc/config');
+       $valeurs = array(
+               'facteur_adresse_envoi'             => lire_config('facteur_adresse_envoi'),
+               'facteur_adresse_envoi_nom'         => lire_config('facteur_adresse_envoi_nom'),
+               'facteur_adresse_envoi_email'       => lire_config('facteur_adresse_envoi_email'),
+               'facteur_forcer_from'               => lire_config('facteur_forcer_from'),
+               'facteur_smtp'                      => lire_config('facteur_smtp'),
+               'facteur_smtp_host'                 => lire_config('facteur_smtp_host'),
+               'facteur_smtp_port'                 => lire_config('facteur_smtp_port', 25),
+               'facteur_smtp_auth'                 => lire_config('facteur_smtp_auth'),
+               'facteur_smtp_username'             => lire_config('facteur_smtp_username'),
+               'facteur_smtp_password'             => '',
+               '_facteur_smtp_password'            => lire_config('facteur_smtp_password'),
+               'facteur_smtp_secure'               => lire_config('facteur_smtp_secure'),
+               'facteur_smtp_tls_allow_self_signed'=> lire_config('facteur_smtp_tls_allow_self_signed'),
+               'facteur_smtp_sender'               => lire_config('facteur_smtp_sender'),
+               'facteur_filtre_images'             => lire_config('facteur_filtre_images'),
+               'facteur_filtre_iso_8859'           => lire_config('facteur_filtre_iso_8859'),
+               'facteur_cc'                        => lire_config('facteur_cc'),
+               'facteur_bcc'                       => lire_config('facteur_bcc'),
+               'email_test'                        => lire_config('facteur_adresse_envoi') == 'oui' ? lire_config('facteur_adresse_envoi_email') : $GLOBALS['meta']['email_webmaster'],
+               'tester'                            => '',
+       );
+
+       // recuperer le from par defaut actuel pour l'indiquer dans le formulaire
+       include_spip('classes/facteur');
+       $facteur = new Facteur('test@example.org', 'Test', '', '', array('adresse_envoi' => 'non'));
+       $valeurs['_from_defaut'] = $facteur->From;
+       if ($facteur->FromName) {
+               $valeurs['_from_defaut'] = $facteur->FromName . ' &lt;'.$valeurs['_from_defaut'].'&gt;';
+       }
+
+       return $valeurs;
+}
+
+function formulaires_configurer_facteur_verifier_dist() {
+       $erreurs = array();
+       include_spip('inc/config');
+       if ($email = _request('facteur_adresse_envoi_email')
+               and !email_valide($email)) {
+               $erreurs['facteur_adresse_envoi_email'] = _T('form_email_non_valide');
+               set_request('facteur_adresse_envoi', 'oui');
+       }
+       if (_request('facteur_smtp') == 'oui') {
+               if (!($h = _request('facteur_smtp_host'))) {
+                       $erreurs['facteur_smtp_host'] = _T('info_obligatoire');
+               } else {
+                       $h = trim($h);
+                       $regexp_ip_valide = '#^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$#';
+                       // Source : http://www.d-sites.com/2008/10/09/regex-ipv4-et-ipv6/
+                       if (!preg_match($regexp_ip_valide, $h)) { // ce n'est pas une IP
+                               if (!preg_match(';^([^.\s/?:]+[.])*[^.\s/?:]+$;', $h)
+                                       or gethostbyname($h) == $h) {
+                                       $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');
+                               }
+                       } else {
+                               if (gethostbyaddr($h) == $h) {
+                                       $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');
+                               }
+                       }
+                       set_request('facteur_smtp_host', $h);
+               }
+               if (!($p=_request('facteur_smtp_port'))) {
+                       $erreurs['facteur_smtp_port'] = _T('info_obligatoire');
+               } elseif (!preg_match(';^[0-9]+$;', $p) or !intval($p)) {
+                       $erreurs['facteur_smtp_port'] = _T('facteur:erreur_invalid_port');
+               }
+
+               if (!_request('facteur_smtp_auth')) {
+                       $erreurs['facteur_smtp_auth'] = _T('info_obligatoire');
+               }
+
+               if (_request('facteur_smtp_auth')=='oui') {
+                       if (!_request('facteur_smtp_username')) {
+                               $erreurs['facteur_smtp_username'] = _T('info_obligatoire');
+                       }
+                       if (!_request('facteur_smtp_password') and !lire_config('facteur_smtp_password')) {
+                               $erreurs['facteur_smtp_password'] = _T('info_obligatoire');
+                       }
+               }
+       }
+       if ($emailcc = _request('facteur_cc')
+               and !email_valide($emailcc)) {
+               $erreurs['facteur_cc'] = _T('form_email_non_valide');
+       }
+       if ($emailbcc = _request('facteur_bcc')
+               and !email_valide($emailbcc)) {
+               $erreurs['facteur_bcc'] = _T('form_email_non_valide');
+       }
+
+       if (_request('tester')) {
+               if (!$email = _request('email_test')) {
+                       $erreurs['email_test'] = _T('info_obligatoire');
+               } elseif (!email_valide($email)) {
+                       $erreurs['email_test'] = _T('form_email_non_valide');
+               }
+       }
+
+
+       if (count($erreurs) > 0) {
+               $erreurs['message_erreur'] = _T('facteur:erreur_generale');
+       }
+       return $erreurs;
+}
+
+function formulaires_configurer_facteur_traiter_dist() {
+       include_spip('inc/meta');
+
+       $facteur_adresse_envoi = _request('facteur_adresse_envoi');
+       ecrire_meta('facteur_adresse_envoi', ($facteur_adresse_envoi=='oui')?'oui':'non');
+
+       $facteur_adresse_envoi_nom = _request('facteur_adresse_envoi_nom');
+       ecrire_meta('facteur_adresse_envoi_nom', $facteur_adresse_envoi_nom?$facteur_adresse_envoi_nom:'');
+
+       $facteur_adresse_envoi_email = _request('facteur_adresse_envoi_email');
+       ecrire_meta('facteur_adresse_envoi_email', $facteur_adresse_envoi_email?$facteur_adresse_envoi_email:'');
+
+       $facteur_forcer_from = _request('facteur_forcer_from');
+       ecrire_meta('facteur_forcer_from', ($facteur_forcer_from=='oui')?'oui':'non');
+
+       $facteur_smtp = _request('facteur_smtp');
+       ecrire_meta('facteur_smtp', ($facteur_smtp=='oui')?'oui':'non');
+
+       $facteur_smtp_host = _request('facteur_smtp_host');
+       ecrire_meta('facteur_smtp_host', $facteur_smtp_host?$facteur_smtp_host:'');
+
+       $facteur_smtp_port = _request('facteur_smtp_port');
+       ecrire_meta('facteur_smtp_port', strlen($facteur_smtp_port)?intval($facteur_smtp_port):'');
+
+       $facteur_smtp_auth = _request('facteur_smtp_auth');
+       ecrire_meta('facteur_smtp_auth', ($facteur_smtp_auth=='oui')?'oui':'non');
+
+       $facteur_smtp_username = _request('facteur_smtp_username');
+       ecrire_meta('facteur_smtp_username', $facteur_smtp_username);
+
+       if ($facteur_smtp_password = _request('facteur_smtp_password')) {
+               ecrire_meta('facteur_smtp_password', $facteur_smtp_password);
+       }
+
+       $facteur_smtp_secure = _request('facteur_smtp_secure');
+       ecrire_meta('facteur_smtp_secure', in_array($facteur_smtp_secure, array('non', 'ssl', 'tls')) ? $facteur_smtp_secure : 'non');
+
+       $facteur_smtp_tls_allow_self_signed = _request('facteur_smtp_tls_allow_self_signed');
+       ecrire_meta('facteur_smtp_tls_allow_self_signed', ($facteur_smtp_tls_allow_self_signed=='oui')?'oui':'non');
+
+       $facteur_smtp_sender = _request('facteur_smtp_sender');
+       ecrire_meta('facteur_smtp_sender', $facteur_smtp_sender);
+
+       ecrire_meta('facteur_filtre_images', intval(_request('facteur_filtre_images')));
+       ecrire_meta('facteur_filtre_iso_8859', intval(_request('facteur_filtre_iso_8859')));
+
+       $facteur_cc = _request('facteur_cc');
+       ecrire_meta('facteur_cc', $facteur_cc?$facteur_cc:'');
+
+       $facteur_bcc = _request('facteur_bcc');
+       ecrire_meta('facteur_bcc', $facteur_bcc?$facteur_bcc:'');
+
+
+       $res = array('message_ok' => _T('facteur:config_info_enregistree'));
+
+       // faut-il envoyer un message de test ?
+       if (_request('tester')) {
+               $res = array();
+               $destinataire = _request('email_test');
+               $err = facteur_envoyer_mail_test($destinataire, _T('facteur:corps_email_de_test'));
+               if ($err) {
+                       $res['message_erreur'] = $err;
+               } else {
+                       $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');
+       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');
+       }
+
+       // tout est OK, pas d'erreur
+       return '';
+}