source: spip-zone/_plugins_/facteur/trunk/formulaires/configurer_facteur.php @ 62827

Last change on this file since 62827 was 62827, checked in by cedric@…, 7 years ago

Le reglage configurable "Transformer les styles contenus entre <head> </head> en des styles en ligne" n'a pas de sens en tant que filtre systematique applique a tous les mails :

  • il casse les mails faits mains sur mesure (comme le wrapper html des emails texte du plugin) car incapable de gerer les @media
  • il peut etre utile sur certains mails html simples
  • il est a utiliser au cas par cas, et c'est le webmestre qui code son mail html qui peut le savoir, pas l'admin qui configure le site et utilise simplement

En consequence, le reglage disparait de la configuration et n'est plus pris en compte
Par compatibilite la methode ConvertirStylesEnligne? de la classe Facteur reste disponible, mais tout son code est deporte dans le filtre facteur_convertir_styles_inline
que l'on appellera au cas par cas dans les squelettes HTML par un appel #FILTRE{facteur_convertir_styles_inline}

Ainsi on preserve son usage quand necessaire, sans plus risque de casser les emails HTML bien fichus
On incremente la version en 2.2.0 pour marquer la difference fonctionnelle

File size: 7.5 KB
Line 
1<?php
2/*
3 * Plugin Facteur 2
4 * (c) 2009-2011 Collectif SPIP
5 * Distribue sous licence GPL
6 *
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11function formulaires_configurer_facteur_charger_dist(){
12        $valeurs = array(
13                'facteur_adresse_envoi' => $GLOBALS['meta']['facteur_adresse_envoi'],
14                'facteur_adresse_envoi_nom' => $GLOBALS['meta']['facteur_adresse_envoi_nom'],
15                'facteur_adresse_envoi_email' => $GLOBALS['meta']['facteur_adresse_envoi_email'],
16                'facteur_smtp' => $GLOBALS['meta']['facteur_smtp'],
17                'facteur_smtp_host' => $GLOBALS['meta']['facteur_smtp_host'],
18                'facteur_smtp_port' => $GLOBALS['meta']['facteur_smtp_port']?$GLOBALS['meta']['facteur_smtp_port']:'25',
19                'facteur_smtp_auth' => $GLOBALS['meta']['facteur_smtp_auth'],
20                'facteur_smtp_username' => $GLOBALS['meta']['facteur_smtp_username'],
21                'facteur_smtp_password' => $GLOBALS['meta']['facteur_smtp_password'],
22                'facteur_smtp_secure' => $GLOBALS['meta']['facteur_smtp_secure'],
23                'facteur_smtp_sender' => $GLOBALS['meta']['facteur_smtp_sender'],
24                'facteur_filtre_images' => $GLOBALS['meta']['facteur_filtre_images'],
25                'facteur_filtre_iso_8859' => $GLOBALS['meta']['facteur_filtre_iso_8859'],
26                '_enable_smtp_secure' => (intval(phpversion()) == 5)?' ':'',
27                'facteur_cc' => $GLOBALS['meta']['facteur_cc'],
28                'facteur_bcc' => $GLOBALS['meta']['facteur_bcc'],
29        'tester' => '',
30        );
31
32        return $valeurs;
33}
34
35function formulaires_configurer_facteur_verifier_dist(){
36        $erreurs = array();
37        if ($email = _request('facteur_adresse_envoi_email')
38          AND !email_valide($email)) {
39                $erreurs['facteur_adresse_envoi_email'] = _T('form_email_non_valide');
40                set_request('facteur_adresse_envoi','oui');
41        }
42        if (_request('facteur_smtp')=='oui'){
43                if (!($h=_request('facteur_smtp_host')))
44                        $erreurs['facteur_smtp_host'] = _T('info_obligatoire');
45                else {
46                        $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}:))$#'; 
47                        // Source : http://www.d-sites.com/2008/10/09/regex-ipv4-et-ipv6/
48                        if (!preg_match($regexp_ip_valide,$h)){ // ce n'est pas une IP
49                                if(!preg_match(';^([^.\s/?:]+[.]){0,2}[^.\s/?:]+$;',$h)
50                                  OR gethostbyname($h)==$h)
51                                        $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');
52                        }
53                        else {
54                                if (gethostbyaddr($h)==$h)
55                                        $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host');                             
56                        }
57                }
58                if (!($p=_request('facteur_smtp_port')))
59                        $erreurs['facteur_smtp_port'] = _T('info_obligatoire');
60                elseif(!preg_match(';^[0-9]+$;',$p) OR !intval($p))
61                        $erreurs['facteur_smtp_port'] = _T('facteur:erreur_invalid_port');
62
63                if (!_request('facteur_smtp_auth'))
64                        $erreurs['facteur_smtp_auth'] = _T('info_obligatoire');
65
66                if (_request('facteur_smtp_auth')=='oui'){
67                        if (!_request('facteur_smtp_username'))
68                                $erreurs['facteur_smtp_username'] = _T('info_obligatoire');
69                        if (!_request('facteur_smtp_password'))
70                                $erreurs['facteur_smtp_password'] = _T('info_obligatoire');
71                }
72        }
73        if ($emailcc = _request('facteur_cc')
74          AND !email_valide($emailcc)) {
75                $erreurs['facteur_cc'] = _T('form_email_non_valide');
76        }
77        if ($emailbcc = _request('facteur_bcc')
78          AND !email_valide($emailbcc)) {
79                $erreurs['facteur_bcc'] = _T('form_email_non_valide');
80        }
81       
82        if(count($erreurs)>0){
83                $erreurs['message_erreur'] = _T('facteur:erreur_generale');
84        }
85        return $erreurs;
86}
87
88function formulaires_configurer_facteur_traiter_dist(){
89        include_spip('inc/meta');
90
91        $facteur_adresse_envoi = _request('facteur_adresse_envoi');
92        ecrire_meta('facteur_adresse_envoi', ($facteur_adresse_envoi=='oui')?'oui':'non');
93
94        $facteur_adresse_envoi_nom = _request('facteur_adresse_envoi_nom');
95        ecrire_meta('facteur_adresse_envoi_nom', $facteur_adresse_envoi_nom?$facteur_adresse_envoi_nom:'');
96
97        $facteur_adresse_envoi_email = _request('facteur_adresse_envoi_email');
98        ecrire_meta('facteur_adresse_envoi_email', $facteur_adresse_envoi_email?$facteur_adresse_envoi_email:'');
99
100        $facteur_smtp = _request('facteur_smtp');
101        ecrire_meta('facteur_smtp', ($facteur_smtp=='oui')?'oui':'non');
102
103        $facteur_smtp_host = _request('facteur_smtp_host');
104        ecrire_meta('facteur_smtp_host', $facteur_smtp_host?$facteur_smtp_host:'');
105
106        $facteur_smtp_port = _request('facteur_smtp_port');
107        ecrire_meta('facteur_smtp_port', strlen($facteur_smtp_port)?intval($facteur_smtp_port):'');
108
109        $facteur_smtp_auth = _request('facteur_smtp_auth');
110        ecrire_meta('facteur_smtp_auth', ($facteur_smtp_auth=='oui')?'oui':'non');
111
112        $facteur_smtp_username = _request('facteur_smtp_username');
113        ecrire_meta('facteur_smtp_username', $facteur_smtp_username);
114
115        $facteur_smtp_password = _request('facteur_smtp_password');
116        ecrire_meta('facteur_smtp_password', $facteur_smtp_password);
117
118        if (intval(phpversion()) == 5) {
119                $facteur_smtp_secure = _request('facteur_smtp_secure');
120                ecrire_meta('facteur_smtp_secure', in_array($facteur_smtp_secure,array('non','ssl','tls'))?$facteur_smtp_secure:'non');
121        }
122
123        $facteur_smtp_sender = _request('facteur_smtp_sender');
124        ecrire_meta('facteur_smtp_sender', $facteur_smtp_sender);
125
126        ecrire_meta('facteur_filtre_images', intval(_request('facteur_filtre_images')));
127        ecrire_meta('facteur_filtre_iso_8859', intval(_request('facteur_filtre_iso_8859')));
128
129        $facteur_cc = _request('facteur_cc');
130        ecrire_meta('facteur_cc', $facteur_cc?$facteur_cc:'');
131
132        $facteur_bcc = _request('facteur_bcc');
133        ecrire_meta('facteur_bcc', $facteur_bcc?$facteur_bcc:'');
134       
135       
136        $res = array('message_ok'=>_T('facteur:config_info_enregistree'));
137
138        // faut-il envoyer un message de test ?
139        if (_request('tester')){
140
141                if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui'
142                  AND $GLOBALS['meta']['facteur_adresse_envoi_email'])
143                        $destinataire = $GLOBALS['meta']['facteur_adresse_envoi_email'];
144                else
145                        $destinataire = $GLOBALS['meta']['email_webmaster'];
146
147                if ((facteur_envoyer_mail_test($destinataire,_T('facteur:corps_email_de_test')))===true){
148                        // OK
149                        $res = array('message_ok'=>_T('facteur:email_test_envoye'));
150                }
151                else {
152                        // erreur
153                        $res = array('message_erreur'=>_T('facteur:erreur')._T('facteur:erreur_dans_log'));
154                }
155        }
156       
157        return $res;
158}
159
160function facteur_envoyer_mail_test($destinataire,$titre){
161        include_spip('classes/facteur');
162        $message_html   = recuperer_fond('emails/test_email_html', array());
163        $message_texte  = recuperer_fond('emails/test_email_texte', array());
164
165        // passer par envoyer_mail pour bien passer par les pipeline et avoir tous les logs
166        $envoyer_mail = charger_fonction('envoyer_mail','inc');
167        $retour = $envoyer_mail($destinataire, $titre, array('html'=>$message_html,'texte'=>$message_texte));
168
169        return $retour?true:false;
170}
171?>
Note: See TracBrowser for help on using the repository browser.