subscribe
Un exemple d’implémentation est fourni par le plugin Mailsubscribers
newsletter/subscribe
Inscrit un subscriber par son email. Si le subscriber existe deja, on met a jour les informations (nom, listes, lang). L’ajout d’une inscription a une liste est cumulatif : si on appelle plusieurs fois la fonction avec le même email et plusieurs listes différentes, l’inscrit sera sur chaque liste.
Pour retirer un mail d’une liste, il faut le désinscrire.
Quand aucune liste n’est indiquée :
- si l’email n’est inscrit a rien, on l’inscrit a la liste générale
newsletter
- si l’email est déjà inscrit, on ne change pas ses inscriptions, mais on modifie ses informations (
nom
,lang
)
$subscribe = charger_fonction("subscribe","newsletter");
$subscribe($email, $options);
* @param $email
* champ obligatoire
* @param array $options
* nom : string
* listes : array (si non fourni, inscrit a la liste generale 'newsletter')
* lang : string
* force : bool permet de forcer une inscription sans doubleoptin (passe direct en valide)
* graceful : bool permet a contrario de ne pas inscrire quelqu'un qui s'est desabonne (utilise lors de l'import en nombre, l'utilisateur est ignore dans ce cas)
* @return bool
* true si inscrit comme demande, false sinon
*
*
newsletter/unsubscribe
Désinscrire un subscriber par son email. Si une ou plusieurs listes sont précisées, le subscriber est désinscrit de ces seules listes. Si il n’en reste aucune, le statut du subscriber est suspendu. Si aucune liste n’est précisée, le subscriber est désinscrit de toutes les listes newsletter.
$unsubscribe = charger_fonction("unsubscribe","newsletter");
$unsubscribe($email, $options);
*
* @param $email
* champ obligatoire
* @param array $options
* listes : array
* @return bool
* true si inscrit, false sinon
newsletter/subscriber
Décrit les informations d’un inscrit. Pour retirer une liste il faut utiliser unsubscribe
.
$subscriber = charger_fonction("subscriber","newsletter");
$subscriber($email);
*
* @param $email
* champ obligatoire
* @return bool|array
* false si n'existe pas
* array :
* string email
* string nom
* array listes
* string lang
* string status : on|pending|off
* string url_unsubscribe : url de desabonnement
*/
newsletter/subscribers
Renvoie les inscrits à une ou plusieurs listes. Si plusieurs listes sont demandées, c’est un OU qui s’applique (renvoie les inscrits à au moins une des listes). Les options count
et limit
permettent de faire un simple comptage ou de ne récupérer qu’une portion de la liste.
$subscribers = charger_fonction("subscribers","newsletter");
$inscrits = $subscribers($listes,$options);
*
* @param array $listes
* listes de diffusion. 'newsletter' si non precise
* @param array $options
* count : si true renvoyer le nombre de resultats au lieu de la liste (perf issue, permet de tronconner)
* limit : ne recuperer qu'un sous ensemble des inscrits "10,20" pour recuperer 20 resultats a partir du 10e (idem SQL)
* @return int|array
* liste d'utilisateurs, chacun decrit par un array dans le meme format que newsletter/subscriber
newsletter/lists
Renvoie les listes de diffusion disponibles avec leurs statuts (open
,close
,?
).
$lists = charger_fonction("lists","newsletter");
$inscrits = $lists($options);
*
* @param array $options
* status : filtrer les listes sur le status
* @return array
* listes
* chaque liste est decrite par :
* id => array(titre=>'','status'=>'')
#FORMULAIRE_NEWSLETTER_SUBSCRIBE
Permet d’insérer dans une page un formulaire d’inscription à la newsletter, ou à une ou plusieurs autres listes passées en argument.
#FORMULAIRE_NEWSLETTER_SUBSCRIBE
#FORMULAIRE_NEWSLETTER_SUBSCRIBE{nouveautes}
#FORMULAIRE_NEWSLETTER_SUBSCRIBE{newsletter,nouveautes}
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE
Permet d’insérer dans une page un formulaire de désinscription à la newsletter, ou à une ou plusieurs autres listes passées en argument.
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE{nouveautes}
#FORMULAIRE_NEWSLETTER_UNSUBSCRIBE{newsletter,nouveautes}
compose
Un exemple d’implémentation est fourni par le plugin Newsletters
newsletter/content
Renvoyer le contenu d’une newsletter par son id (le format de l’id n’est pas imposé par l’API et peut être un entier ou une chaine. Il doit être cohérent avec celui passé à la fonction newsletter/send
).
$content = charger_fonction("content","newsletter");
$lettre = $content($id);
*
* @param int|string $id
* @return array|bool
* string sujet
* string html
* string texte
newsletter/contextualize
Contextualiser le contenu de l’infolettre en fonction des informations concernant le destinataire. La syntaxe des variables n’est pas imposée par l’API et dépend de l’implémentation par le plugin qui prend en charge cette partie de l’API.
$contextualize = charger_fonction("contextualize","newsletter");
$content2 = $contextualize($content, $context);
* @param $content
* le contenu (html ou texte) de la newsletter
* @param $context
* le contexte des variables
* @return string
*/
send
Un exemple d’implémentation est fourni par le plugin Mailshot
newsletter/send
Envoie une infolettre à un destinataire. L’infolettre peut être fournie par son id (et la fonction utilisera newsletter/content
pour récupérer son contenu détaillé, ou decrite explicitement par un tableau (de format homogène à ce que attend envoyer_mail
).
L’argument $destinataire
attendu est homogène à ce que fournit newsletter/subscriber
.
Le contenu $corps
de l’email sera contextualisé à l’aide du contenu de $destinataire
au moyen de la fonction newsletter/contextualize
$send = charger_fonction("send","newsletter");
$res = $send($destinataire, $corps, $options);
*
* @param array $destinataire
* description du destinataire
* string email
* string nom
* array listes
* string lang
* string status : on|pending|off
* string url_unsubscribe : url de desabonnement
*
* @param array|string $corps
* string id de la newsletter
*ou array contenu de la newsletter
* string sujet
* string html
* string texte
* string from : email de l'envoyeur
* string nom_envoyeur : un nom d'envoyeur pour compléter l'email from
* string cc : destinataires en copie conforme
* string bcc : destinataires en copie conforme cachee
* string|array repondre_a : une ou plusieurs adresses a qui repondre
*
* @param array $options
* options d'envoi
* bool test : mode test (ajoute un [TEST] dans le sujet
* string tracking_id
*
* @return string|int
* vide si ok, ou message d'erreur sinon
newsletter/bulkstart
Démarrer un envoi en nombre d’une info-lettre vers une ou plusieurs listes.
$bulkstart = charger_fonction("bulkstart","newsletter");
$res = $bulkstart($corps, $listes, $options);
*
* @param string|array $corps
* string id de la newsletter a envoyer en lot
*ou array contenu a envoyer
* string sujet
* string html
* string texte
* @param array $listes
* listes a qui on envoie (1 ou ++)
* @param array $options
* string statut : statut par defaut
* @return int
* 0 si echec ou id de l'envoi sinon
newsletter/feedback
Permet la prise en compte d’un évènement concernant un mail envoyé (tracking de l’ouverture, clic sur un lien, bounce...) pour mettre à jour le statut de l’envoi correspondant, ou désabonner un email qui n’est plus valide etc.
$feedback = charger_fonction("feedback","newsletter");
$feedback($quoi, $email, $tracking_id);
Le tracking_id
correspond à celui qui a été fourni en option dans l’appel à newsletter/bulkstart
.
*
* @param string $quoi
* open : l'email a ete ouvert
* clic : un lien a ete clique
* soft_bounce : refus temporaire pour cause de boite mail pleine ou autre
* hard_bounce : adresse foireuse, refus definitif
* reject : email rejete
* spam : email taggue en spam
* @param $email
* @param $tracking_id
#FORMULAIRE_NEWSLETTER_SEND
Permet d’envoyer une info-lettres. L’identifiant de l’info-lettres est fourni en argument.
Il n’y a aucune contrainte sur cet identifiant, qui doit simplement être reconnu par la fonction newsletter/content
à laquelle il sera passé.
Un second argument permet de préciser que l’envoi se fait en mode test uniquement (pour les info-lettres non finalisées par exemple). En mode test, le sujet du mail est préfixé par [TEST] et l’envoi en nombre n’est pas permis.
#FORMULAIRE_NEWSLETTER_SEND{#ID_NEWSLETTER}
[(#REM) En mode test : ]
#FORMULAIRE_NEWSLETTER_SEND{#ID_NEWSLETTER,' '}
Discussions par date d’activité
4 discussions
Bonjour
je cherche une solution pour ne proposer dans l’espace public, via le formulaire d’inscription aux newsletters, qu’une seule des listes ouvertes disponibles dans la partie privée.
J’ai un moment pensé que via cette balise, ce serait possible #FORMULAIRE_NEWSLETTER_SUBSCRIBE , mais je n’ai pas l’impression, à moins que je n’aie pas compris quelque chose.
J’ai tenté de surcharger ce fichier (inc-check-subscribinglists.html) avec succès pour pouvoir sélectionner une seule liste avec son ID, mais il agit aussi dans l’espace privé, ce qui me pose un problème.
Merci par avance pour vos propositions.
Cordialement
Bonjour,
Avec ce code dans un squelette en indiquant l’identifiant de la liste de diffusion à afficher (ici « news » par exemple).
(avec « checklist » s’il y en a plus d’une)
dd
Bonjour
Merci pour la réponse,
avec deux listes ouvertes sir j’utilise
[(#FORMULAIRE_NEWSLETTER_SUBSCRIBE{"maliste"})]
maliste apparaît cochée, mais l’autre apparait aussi. Hors, je ne voudrais qu’une des deux listes affichée.
François-Marie
Ah,
Je viens de revérifier et sur mon site j’ai le fonctionnement attendu :
affiche les 2 listes de diffusion.
et
n’en affiche qu’une.
Les deux sont publiées.
Versions : MailSubscribers 3.3.0 / Newsletters 1.6.4 / SPIP 4.0.8
dd
Moi toujours pareil je regarde après noël.
Merci
Répondre à ce message
Bonjour, où faut-il intervenir pour que le formulaire d’inscription #FORMULAIRE_NEWSLETTER_SUBSCRIBE provoque un affichage avec le champ pour l’adresse mail à remplir et le bouton à côté (tout sur la même ligne plutôt que sur des lignes différentes).
Répondre à ce message
Bonjour,
Y-a-t’il un moyen pour que le modèle
#FORMULAIRE_NEWSLETTER_SUBSCRIBE
dans un squelette liste toutes les listes de diffusion publiées et pas seulement la liste « newsletter » ?
Actuellement si les listes de diffusion changent il faut modifier le squelette.
Merci
dd
Répondre à ce message
entête list-unsubscribe
J’ai des retours de personnes inscrites à des NL qui me disent que les envois arrivent dans les spams. Un test d’envoi vers mail-tester donne pourtant une note de 10/10
cf : https://www.mail-tester.com/test-b42qb
En essayant de creuser, il semblerait que les serveurs d’orange soient assez sévères avec les mails de masse ne disposant pas d’entête list-unsubscribe (RFC 2369). Mail-tester signalant l’absence de cet entête dans son rapport, je me demande s’il n’y aurait pas un petit truc à voir de ce côté-là...
Une opinion ?
Ça se tient/paramètre où cette histoire d’en-tête ? C’est à facteur/mailshot/newsletter de faire ça ? Pas à eux ?
Bonjour,
Je serai aussi intéressé pour savoir comment intégrer la RFC 2369 concernant le list-unsubscribe lors des envois de newsletter svp.
Bonjour,
Est-ce que quelqu’un aurait des pistes pour l’insertion de l’entête « List-Unsubscribe » svp ?
ça m’intéresse aussi !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |