Ignore:
Timestamp:
Jun 14, 2011, 12:20:37 PM (10 years ago)
Author:
n.pavot@…
Message:

De nouveaux paramètres sont désormais accessibles sur spip-lettres :

  • pour chaque thématique, on peut définir l'expéditeur ainsi que l'adresse e-mail qui recevra les retours en erreur

4 cas sont possibles :
1-défaut(facteur ou site)
2-webmaster
3-auteur de la lettre
4-un des auteurs/admins (0minirezo)

  • il est aussi possible de paramétrer dans la configuration avancée de spip-lettres, la personne qui recevra les notifications de désabonnements (webmaster ou un admin sélectionné).
  • N.B. : cette nouvelle version de spip-lettres nécessite les plugins YAML et saisies
File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-lettres/classes/abonne.php

    r47522 r48782  
    365365                        $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    366366
     367                        // on récupère les paramètres d'envoi de la thématique
     368                        $theme = sql_fetsel(
     369                                        "expediteur_type, expediteur_id, retours_type, retours_id",
     370                                        "spip_themes LEFT JOIN spip_lettres USING(id_rubrique)",
     371                                        "id_lettre=".$id_lettre
     372                        );
     373                        $expediteur_type = $theme['expediteur_type'];
     374                        $expediteur_id = $theme['expediteur_id'];
     375                        $retours_type = $theme['retours_type'];
     376                        $retours_id = $theme['retours_id'];
     377
     378
     379                        if (!empty($expediteur_type) && 'author'!=$expediteur_type)
     380                        {
     381                                // l'expéditeur par défaut, dépend de la configuration de facteur et du site
     382                                if (isset($GLOBALS['meta']['facteur_smtp_sender']) && !empty($GLOBALS['meta']['facteur_smtp_sender']))
     383                                        $email_envoyeur =  $GLOBALS['meta']['facteur_smtp_sender'];
     384                                else
     385                                        $email_envoyeur =  $GLOBALS['meta']['email_webmaster'];
     386
     387                                $nom_envoyeur = strip_tags($GLOBALS['meta']['nom_site']);
     388
     389                                // l'expéditeur est le webmaster
     390                                if ('webmaster'==$expediteur_type)
     391                                {
     392                                                $nom_envoyeur = _T('webmaster');
     393                                                $email_envoyeur = $GLOBALS['meta']['email_webmaster'];
     394                                }
     395
     396                                // l'expéditeur est un auteur sélectionné
     397                                else if ('custom'==$expediteur_type)
     398                                {
     399                                                $auteur = sql_fetsel(
     400                                                        "nom, email",
     401                                                        "spip_auteurs",
     402                                                        "id_auteur=".$expediteur_id
     403                                                );
     404                                                $nom_envoyeur = $auteur['nom'];
     405                                                $email_envoyeur = $auteur['email'];
     406                                }
     407
     408                                $corps = array(
     409                                        'html' => $message_html,
     410                                        'texte' => $message_texte,
     411                                        'nom_envoyeur' =>  $nom_envoyeur
     412                                );
     413                                $expediteur = $email_envoyeur;
     414                        }
     415
    367416                        // si signe_par_auteurs = oui
    368                         if ($GLOBALS['meta']['spip_lettres_signe_par_auteurs'] == 'oui') {
     417                        else if ('author'==$expediteur_type || $GLOBALS['meta']['spip_lettres_signe_par_auteurs'] == 'oui') {
    369418                               
    370419                                // on récupère le 1er auteur; pas traité si plusieurs auteurs
     
    383432                                $expediteur = $email_envoyeur;
    384433                        }
    385                         return $envoyer_mail($this->email, $objet, $corps, $expediteur);
     434                       
     435                        // on spécifie l'adresse e-mail pour les retours en erreur
     436                        if (!empty($retours_type))
     437                        {
     438                                switch($retours_type)
     439                                {
     440                                        case "webmaster":
     441                                                $corps['adresse_erreur'] =  $GLOBALS['meta']['email_webmaster'];
     442                                                break;
     443
     444                                        case "author":
     445                                                $auteur = sql_fetsel(
     446                                                        "email",
     447                                                        "spip_auteurs LEFT JOIN spip_auteurs_lettres USING(id_auteur)",
     448                                                        "id_lettre=".$id_lettre
     449                                                );
     450                                                $corps['adresse_erreur'] = $auteur['email'];
     451                                                break;
     452
     453                                        case "custom":
     454                                                $auteur = sql_fetsel(
     455                                                        "email",
     456                                                        "spip_auteurs",
     457                                                        "id_auteur=".$retours_id
     458                                                );
     459                                                $corps['adresse_erreur'] = $auteur['email'];
     460                                                break;
     461
     462                                        default:
     463                                                if (isset($GLOBALS['meta']['facteur_smtp_sender']) && !empty($GLOBALS['meta']['facteur_smtp_sender']))
     464                                                        $corps['adresse_erreur'] =  $GLOBALS['meta']['facteur_smtp_sender'];
     465                                                else
     466                                                        $corps['adresse_erreur'] =  $GLOBALS['meta']['email_webmaster'];
     467                                                break;
     468                                }
     469                        }
     470
     471                        return $envoyer_mail($this->email, $objet, $corps, $expediteur, $headers);
    386472                }
    387473               
     
    489575               
    490576                function supprimer() {
    491                         if ($GLOBALS['meta']['spip_lettres_notifier_suppression_abonne'] == 'oui') {
     577                        if ($GLOBALS['meta']['spip_lettres_notifier_suppression_abonne'] != 'non') {
    492578                                $objet                  = recuperer_fond('emails/lettres_suppression_abonne_titre', array('email' => $this->email));
    493579                                $message_html   = recuperer_fond('emails/lettres_suppression_abonne_html', array('email' => $this->email));
     
    495581                                $corps = array('html' => $message_html, 'texte' => $message_texte);
    496582                                $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    497                                 $envoyer_mail($GLOBALS['meta']['email_webmaster'], $objet, $corps);
     583                               
     584                                $email_recoit_desabonnement = $GLOBALS['meta']['email_webmaster'];
     585
     586                                if ('webmaster'!=$GLOBALS['meta']['spip_lettres_notifier_suppression_abonne'])
     587                                {
     588                                        $id_auteur = intval($GLOBALS['meta']['spip_lettres_notifier_suppression_abonne']);
     589                                        $row = sql_fetsel("email", "spip_auteurs", "id_auteur=".$id_auteur);
     590                                        $email_recoit_desabonnement = $row["email"];
     591                                }
     592                                $envoyer_mail($email_recoit_desabonnement, $objet, $corps);
    498593                        }
    499594                        $req = sql_select('*', 'spip_abonnes_statistiques', 'periode="'.date('Y-m').'"');
Note: See TracChangeset for help on using the changeset viewer.