Ignore:
Timestamp:
Jun 18, 2011, 3:22:48 PM (10 years ago)
Author:
paladin@…
Message:

Correction du message de confirmation d'abonnement. La balise FORMULAIRE_SPIP_LISTES_INSCRIPTION utilise maintenant le patron messages_abo/standard poour répondre. Reste à revoir le charset, et peut-être le contenu du message (en plus clair, avec un lien cookie)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-listes/spip-listes_1_9_3/inc/spiplistes_api.php

    r48255 r48905  
    896896 * @return string
    897897 */
    898 function spiplistes_formats_abo_default () {
     898function spiplistes_format_abo_default () {
    899899        $defaut = spiplistes_pref_lire('opt_format_courrier_defaut');
    900900        if (
     
    11511151
    11521152/**
     1153 * Renvoie le nom du patron pour la composition des messages de gestion
     1154 * (confirmation d'abonnement, modification, etc.)
     1155 * @todo boite de sélection dans une page de configuration ?
     1156 * @return string
     1157 * */
     1158function spiplistes_patron_message () {
     1159        return ('standard');
     1160}
     1161
     1162/**
    11531163 * Incruster les styles inline
    11541164 *
     
    11891199        }
    11901200       
     1201        spiplistes_debug_log('Chemin patrons : '.$path_patron);
     1202       
    11911203        $patron_html = spiplistes_patron_find_in_path($path_patron, $contexte['lang'], false);
    11921204        $contexte['patron_html'] = $patron_html;
     1205        spiplistes_debug_log('CREATE html version USING '.$patron_html);
    11931206       
    11941207        $result_html =
     
    14951508
    14961509/**
    1497  * utiliser l'api pour pouvoir envoyer par smtp si besoin
    1498  * @version CP-20090111
    1499  */
    1500 function spiplistes_envoyer_mail ($to, $subject, $message, $from = false, $headers = '', $format = 'texte') {
     1510 * Compose le contenu du message via un patron
     1511 * Les patrons de messages sont dans ~/patrons/messages_abos
     1512 * @param string $objet
     1513 * @param string $patron
     1514 * @param array $contexte
     1515 * @return string
     1516 */
     1517function spiplistes_preparer_message ($objet, $patron, $contexte) {
     1518       
     1519        include_once (_DIR_PLUGIN_SPIPLISTES.'inc/spiplistes_mail.inc.php');
     1520       
     1521        // si pas encore abonne' ou desabonne', pas de format ! donc forcer a texte
     1522        $format = ($contexte['format'] == 'html') ? $contexte['format'] : ($contexte['format'] = 'texte');
     1523
     1524        $contexte['patron'] = $patron;
     1525        $path_patron = _SPIPLISTES_PATRONS_MESSAGES_DIR . $patron;
     1526       
     1527        list($message_html, $message_texte) = spiplistes_assembler_patron($path_patron, $contexte);
     1528
     1529        $charset = $GLOBALS['meta']['spiplistes_charset_envoi'];
     1530       
     1531        if($charset != $GLOBALS['meta']['charset'])
     1532        {
     1533                include_spip('inc/charsets');
     1534                if($format == 'html') {
     1535                        $message_html = unicode2charset(charset2unicode($message_html), $charset);
     1536                }
     1537                //$message_texte = unicode2charset(charset2unicode($message_texte), $charset);
     1538                $message_texte = spiplistes_translate_2_charset ($message_texte, $charset);
     1539        }
     1540        $email_a_envoyer = array();
     1541        $email_a_envoyer['texte'] = new phpMail('', $objet, '', $message_texte, $charset);
     1542        if($format == 'html') {
     1543                $email_a_envoyer['html'] = new phpMail('', $objet, $message_html, $message_texte, $charset);
     1544                $email_a_envoyer['html']->Body = "<html>\n\n<body>\n\n" . $message_html . "\n\n</body></html>";
     1545                $email_a_envoyer['html']->AltBody = $message_texte;
     1546        }
     1547        $email_a_envoyer['texte']->Body = $message_texte ."\n\n";
     1548        $email_a_envoyer[$format]->SetAddress($contexte['email'], $contexte['nom']);
     1549       
     1550        return($email_a_envoyer);
     1551}
     1552
     1553/**
     1554 * Envoyer un message en tenant compte des prefs SPIP-Listes
     1555 * (SMTP ou mail(), simuler l'envoi,....)
     1556 *
     1557 * Le message ($message) peut être
     1558 * - soit un string (au format texte)
     1559 * - soit un array ('html' => $contenu_html, 'texte' => $contenu_texte)
     1560 *
     1561 * @param string $to
     1562 * @param string $subject
     1563 * @param string|array $message
     1564 * @param string|bool $from
     1565 * @param string $headers
     1566 * @param string $format
     1567 * @staticvar string|bool $opt_simuler_envoi
     1568 * @version CP-20110618
     1569 */
     1570function spiplistes_envoyer_mail ($to
     1571                                                                  , $subject
     1572                                                                  , $message
     1573                                                                  , $from = false
     1574                                                                  , $headers = ''
     1575                                                                  , $format = 'texte') {
    15011576       
    15021577        static $opt_simuler_envoi;
     
    15091584                $opt_simuler_envoi = spiplistes_pref_lire('opt_simuler_envoi');
    15101585        }
     1586       
    15111587        if (!$from)
    15121588        {
     
    15211597                }
    15221598        }
    1523         // @TODO: voir email_reply_to ?
     1599        /**
     1600         * @TODO: voir email_reply_to ?
     1601         */
    15241602        $reply_to = 'no-reply'.preg_replace("|.*(@[a-z.]+)|i", "$1", email_valide($from));
    15251603       
    15261604        if($opt_simuler_envoi == 'oui') {
    1527                 spiplistes_log("!!! MAIL SIMULATION MODE !!!");
     1605                spiplistes_log('!!! MAIL SIMULATION MODE !!!');
    15281606                $result = true;
    15291607        }
     
    15331611                $email_a_envoyer = array();
    15341612               
    1535                 $return_path = spiplistes_return_path($from);
     1613                $return_path = spiplistes_return_path ($from);
    15361614               
    1537                 if(is_array($message))
     1615                if(is_array($message) && ($format == 'html'))
    15381616                {
     1617                spiplistes_debug_log ('Messages HTML: '.strlen($message['html']));
    15391618                        if($format=='html' && isset($message[$format])) {
    15401619                                $email_a_envoyer['html'] = new phpMail($to, $subject, $message['html'], $message['texte'], $charset);
     
    15451624                                $email_a_envoyer['html']->AddCustomHeader("Return-Path: ".$return_path);       
    15461625                                $email_a_envoyer['html']->SMTPKeepAlive = true;
    1547                                 $email_a_envoyer['html']->Body = $message['html']->Body;
    1548                                 $email_a_envoyer['html']->AltBody = $message['html']->AltBody;
     1626                                $email_a_envoyer['html']->Body = $message['html'];
     1627                                $email_a_envoyer['html']->AltBody = $message['texte'];
    15491628                        }
    1550                         $message = $message['texte']->Body;
    15511629                }
    15521630                //$message = spiplistes_html_entity_decode ($message, $charset);
     
    15541632               
    15551633                //$email_a_envoyer['texte'] = new phpMail($to, $subject, '', html_entity_decode($message), $charset);
    1556                 $email_a_envoyer['texte'] = new phpMail($to, $subject, '', $message, $charset);
     1634                $email_a_envoyer['texte'] = new phpMail($to, $subject, '', $message['texte'], $charset);
    15571635                $email_a_envoyer['texte']->From = $from ;
    15581636                if($fromname) $email_a_envoyer['html']->FromName = $fromname ;
     
    15611639                $email_a_envoyer['texte']->AddCustomHeader('Return-Path: '.$return_path);
    15621640                $email_a_envoyer['texte']->SMTPKeepAlive = true;
     1641                $email_a_envoyer['texte']->Body = $message['texte'];
    15631642               
    1564                 $result = $email_a_envoyer[$format]->send();
    1565                
     1643                if ($result = $email_a_envoyer[$format]->send())
     1644                {
     1645                        $email_a_envoyer['html']->SmtpClose();
     1646                        $email_a_envoyer['texte']->SmtpClose();
     1647                }
     1648                                                       
    15661649                $msg = "email from $from to $to";
    1567                 spiplistes_log(!$result ? "error: $msg not sent" : "$msg sent");
     1650                spiplistes_log(!$result ? 'error: '.$msg.' not sent' : "$msg sent");
    15681651        }
    15691652        return($result);
     
    16861769        return($result);
    16871770}
     1771
    16881772
    16891773/******************************************************************************************/
Note: See TracChangeset for help on using the changeset viewer.