le passage en cci en cas de destinataires multiple dépend de l' ['cci'=>true]. Plus de confort pour le paramètre : on accepte un array ou une string avec , (et toujours id_auteurs en mix avec adresses mail)

This commit is contained in:
clem 2020-08-21 11:33:49 +02:00
parent f0221e8221
commit 617df6ea97
2 changed files with 17 additions and 11 deletions

View file

@ -8,17 +8,20 @@ include_spip('inc/filtres');
* formulaire générique pour envoyer des mails avec pieces attachés
*
* @param string $slug modele du mail a charger
* @param string $destinataires = adresses mails et id_auteurs séparées par ,
* @param string $destinataires = adresses mails et id_auteurs séparées par , ou en array
* si un des destinataire est au format numérique, on considère que c'est un id_auteur et on va choper son mail dans spip_auteurs
* @param array $Tclient []['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] ou ['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email']
* @param array $Tpdf []['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]] ou ['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]]
* @param string $redirect
* @param array $options
* @return array $valeurs
*
*/
function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
$Tmails = [];
if (!is_array($destinataires)) {
$destinataires = explode(',', $destinataires);
}
foreach ($destinataires as $dest) {
if (is_numeric($dest)) {
if ($mail = sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.$dest)) {

View file

@ -7,10 +7,11 @@ if (!defined('_ECRIRE_INC_VERSION')){
* fonction pour préparer et envoyer un mail basé sur un slug gamumail
*
* @param string $slug
* @param string $destinataires = adresses mails et id_auteur séparées par ,
* @param string|array $destinataires = adresses mails et id_auteur séparées par , ou en array
* si un des destinataire est au format numérique, on considère que c'est un id_auteur et on va choper son mail dans spip_auteurs
* @param array $options (au cas ...)
* @param array $options :
* $options['debug' => true] pour afficher le $corps final sans envoyer le mail
* $options['cci' => true] pour passer les destinataires en cci si il y en a plus qu'un
*
**/
function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
@ -39,7 +40,9 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
}
// destinataires
if (!is_array($destinataires)) {
$destinataires = explode(',', $destinataires);
}
$pour = array();
foreach ($destinataires as $dest) {
if (is_numeric($dest)) {
@ -52,14 +55,14 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
}
}
function test_vide($elem) {
function non_vide($elem) {
return ($elem != NULL AND $elem != '');
}
$cc = array_filter(explode(',', lire_config('gamumail/mail_cc')), 'test_vide');
$cci = array_filter(explode(',', lire_config('gamumail/mail_cci')), 'test_vide');
$cc = array_filter(explode(',', lire_config('gamumail/mail_cc')), 'non_vide');
$cci = array_filter(explode(',', lire_config('gamumail/mail_cci')), 'non_vide');
// si on a plusieurs destinataires, les passer en cci et mettre le compte expéditeur du site en to
if (count($pour) > 1) {
// si on a plusieurs destinataires et $options['cci' => true] les passer en cci et mettre le compte expéditeur du site en to
if (count($pour) > 1 AND isset($options['cci']) AND $options['cci']) {
$cci = array_unique(array_merge($cci, $pour));
$pour = [lire_config('facteur/adresse_envoi_email',lire_config('email_webmaster'))];
}
@ -166,7 +169,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
}
// si debug on affiche sans envoyer le mail
if ($options['debug']) {
if (isset($options['debug']) AND $options['debug']) {
echo '$pour : ';
var_dump($pour);
echo '<br>$sujet: '.$sujet.'<br>$corps : ';