X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins%2Ffacteur%2Fformulaires%2Fconfigurer_facteur.php;h=2b731d1aa67d54baf36e0f9965e462e574221353;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=aa46e78bca405947448375069157bdf51847d1f8;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins/facteur/formulaires/configurer_facteur.php b/www/plugins/facteur/formulaires/configurer_facteur.php index aa46e78b..2b731d1a 100644 --- a/www/plugins/facteur/formulaires/configurer_facteur.php +++ b/www/plugins/facteur/formulaires/configurer_facteur.php @@ -1,219 +1,223 @@ - 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_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'), - '_enable_smtp_secure' => (intval(phpversion()) == 5)?' ':'', - '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 . ' <'.$valeurs['_from_defaut'].'>'; - } - - 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); - } - - if (intval(phpversion()) == 5) { - $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_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 ""; -} -?> + 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 . ' <'.$valeurs['_from_defaut'].'>'; + } + + 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 ''; +}