Browse Source

L'option forcer_from fait deux choses:

- changer l'adresse d'envoi si domaine différent de celle du webmestre
  - et, si on change l'adresse d'envoi, changer aussi le nom de
  l'expediteur

Le premier point permet de fonctionner avec des serveurs SMTP stricts,
qui vérifient le domaine.

Toutefois, on peut vouloir garder le nom expediteur, même si on change
l'adresse expeditrice (ce que fait, par ex, Formidable lorsqu'on ne
force pas le champ From).

Une nouvelle option permet cela.
v3
maieul@maieul.net 4 years ago
parent
commit
49cb44c84e
  1. 11
      classes/facteur.php
  2. 12
      formulaires/configurer_facteur.html
  3. 4
      formulaires/configurer_facteur.php
  4. 1
      lang/facteur_fr.php
  5. 2
      paquet.xml

11
classes/facteur.php

@ -54,7 +54,7 @@ class Facteur extends PHPMailer {
// On récupère toutes les options par défaut depuis le formulaire de config
$defaut = array();
foreach (array(
'adresse_envoi', 'adresse_envoi_email', 'adresse_envoi_nom', 'forcer_from',
'adresse_envoi', 'adresse_envoi_email', 'adresse_envoi_nom', 'forcer_from', 'garder_fromname',
'cc', 'bcc',
'smtp', 'smtp_host', 'smtp_port', 'smtp_auth',
'smtp_username', 'smtp_password', 'smtp_secure', 'smtp_sender', 'smtp_tls_allow_self_signed',
@ -106,9 +106,12 @@ class Facteur extends PHPMailer {
// si forcer_from, on sauvegarde le From et FromName par defaut, qui seront utilises
// si From n'est pas dans le meme domaine
// (utiliser le facteur avec un service externe qui necessite la validation des domaines d'envoi)
// On peut avoir une sous-option garder_fromname pour garder le FromName passé
if ($options['forcer_from']=='oui'){
$this->ForceFrom = $this->From;
$this->ForceFromName = $this->FromName;
if ($options['garder_fromname']!='oui') {
$this->ForceFromName = $this->FromName;
}
}
$this->CharSet = "utf-8";
@ -437,7 +440,9 @@ class Facteur extends PHPMailer {
$this->AddReplyTo($this->From,$this->FromName);
// on force le From
$this->From = $this->ForceFrom;
$this->FromName = $this->ForceFromName;
if ($this->ForceFromName) {//null si jamais garder_fromname était activé
$this->FromName = $this->ForceFromName;
}
}
}
$args = func_get_args();

12
formulaires/configurer_facteur.html

@ -45,6 +45,18 @@
<label for="#GET{name}_#GET{val}"><:facteur:label_facteur_forcer_from:></label>
</div>
</li>
#SET{name,facteur_garder_fromname}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
<li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
<span class='erreur_message'>(#GET{erreurs})</span>
]
<div class="choix">
#SET{val,non}
<input type="hidden" name="#GET{name}" value="#GET{val}" />
#SET{val,oui}
<input type="checkbox" name="#GET{name}" class="checkbox" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name},#GET{defaut}}|=={#GET{val}}|oui)checked="checked"] />
<label for="#GET{name}_#GET{val}"><:facteur:label_facteur_garder_fromname:></label>
</div>
</li>
</ul>
</fieldset>
</li>

4
formulaires/configurer_facteur.php

@ -17,6 +17,7 @@ function formulaires_configurer_facteur_charger_dist() {
'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_garder_fromname' => lire_config('facteur_garder_fromname'),
'facteur_smtp' => lire_config('facteur_smtp'),
'facteur_smtp_host' => lire_config('facteur_smtp_host'),
'facteur_smtp_port' => lire_config('facteur_smtp_port', 25),
@ -131,6 +132,9 @@ function formulaires_configurer_facteur_traiter_dist() {
$facteur_forcer_from = _request('facteur_forcer_from');
ecrire_meta('facteur_forcer_from', ($facteur_forcer_from=='oui')?'oui':'non');
$facteur_garder_fromname = _request('facteur_garder_fromname');
ecrire_meta('facteur_garder_fromname', ($facteur_garder_fromname=='oui')?'oui':'non');
$facteur_smtp = _request('facteur_smtp');
ecrire_meta('facteur_smtp', ($facteur_smtp=='oui')?'oui':'non');

1
lang/facteur_fr.php

@ -58,6 +58,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// L
'label_facteur_forcer_from' => 'Forcer cette adresse d’envoi quand le <tt>From</tt> n’est pas sur le même domaine',
'label_facteur_garder_fromname' => 'Garder le nom de l\'expéditeur, même lorsqu\'on force l\'adresse d\'envoi',
// M
'message_identite_email' => 'La configuration du plugin "facteur" surcharge cette adresse email pour l’envoi de courriels.',

2
paquet.xml

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

Loading…
Cancel
Save