Importer les noms depuis une base SQL dans SYMPA

Bonjour,

J’utilisais jusqu’à présent la fonction mail() PHP pour diffuser une lettre d’information et je souhaite passer à SYMPA qui est, parait-il, plus adapté à cet exercice !

Je suis donc “grand débutant” dans l’utilisation de SYMPA.

Je souhaite utiliser la seule fonction “lettre d’information” dont je serai l’unique expéditeur, à destination d’une liste SQL externe dans laquelle sont déjà gérés les abonnements. Tout est en place et semble bien fonctionner mais les possibilités de SYMPA me semblent très limitées.
J’ai lu toutes les discussion sur ce thème, sans rien trouver.
Ma question est donc double :

  • Est-il possible de personnaliser les messages envoyés, en insérant, par exemple, le nom du destinataire ? Un autre champ quelconque ?
  • Si tel est le cas, comment peut-on récupérer ces données depuis la base externe ?

Merci de vos conseils éclairés

Bonjour,

A priori Sympa peut permettre de personnaliser les mails, et même allez chercher les infos personnalisées dans une base SQL (https://www.sympa.org/doc/formation/sympa_avance), mais je ne sais pas si c’est possible chez nous.

Je vais essayer de tester à l’occasion.

Merci Matthieu,

Ce n’était pourtant pas faute d’avoir cherché, mais j’étais passé à côté de ce paragraphe.

On peut effectivement ajouter des “attributs utilisateurs” pour personnaliser la base de données SYMPA. J’ai essayé, ça marche.
Cependant, j’ai relevé une phrase qui enlève toute utilité à cette fonction, dans mon cas du moins : “Notez que dans la prochaine version de Sympa, ces attributs personnalisés peuvent être provisionnés depuis des sources de données externes.” Et je n’arrive en effet toujours pas à récupérer autre chose que le mail à partir de ma base SQL.

Je suppose que cette documentation est actualisée pour la version courante de SYMPA, à savoir la 6.2.24. Et la version en place chez Ouvaton est la 6.0.1 !
Il risque donc de couler encore beaucoup d’eau sous les ponts avant que la future version soit disponible chez nous !

Si quelqu’un a une solution en attendant, je suis preneur…

Mise à jour du 25/01/2018

Bon, j’avance petit à petit, et j’explique, si ça peut servir à quelqu’un. Et, si j’arrive au bout, j’essaierai de faire un tutoriel.

Pour la BDD, j’ai abandonné la synchronisation SQL pour laquelle je n’ai pas réussi à importer autre chose que l’adresse mail. J’utilise l’inclusion de fichier distant (include_remote_file) à partir d’un fichier PHP qui ne contient que du code et renvoie la liste des adresses mail. C’est beaucoup plus performant puisque je peux passer des paramètres (GET) dans l’URL du fichier pour configurer la liste, plutôt que de le faire dans Sympa.
Chaque ligne correspond à une adresse mail d’abonné et tout ce qui est après le premier espace est intégré au Nom par Sympa. Je n’ai pas (encore !) réussi à transférer d’autre paramètre et je ne sais pas si c’est possible.

  • C’est donc une première question : Comment récupérer d’autres attrbuts que mail + nom à partir d’un fichier texte externe ?

Ensuite j’ai une grosse difficulté, toujours sur la personnalisation. Le paramètre “Autoriser la personnalisation des messages (merge_feature)” devrait être accessible dans la page “configurer la liste > Diffusion réception”. Il n’y est pas et, sans lui, qui est par défaut sur “off”, la personnalisation ne fonctionne pas.

  • Voici donc ma deuxième question (multiple !) : Pourquoi ce paramètre (merge_feature) est-il absent de l’interface web ? Comment le faire apparaître ? Ou, comment le passer à “On” autrement ?

Je continue de chercher, mais si une bonne âme passe par là…

1 « J'aime »

Bonjour,

Une semaine et pas de réponse. Je pense que ma mise à jour du 25 a dû passer inaperçue.

Je cherche toujours mais je désespère. Toujours pas de solution pour personnaliser les messages.
Il doit pourtant bien exister à quelque part ce paramètre (merge_feature) !

Bonjour,
C’est déjà bien d’avoir les adresses de courriel depuis une base MYSQL.
Mais cette base est-elle chez ouvaton ou sur un autre fournisseur ?
Si c’est chez ouvaton pouvez-vous nous indiquer les types de valeurs à renseigner dans les champs :

nom court pour cette source :
type de la base :
serveur distant :
port utilisé :
nom de la base :
paramètres de connexion :
variable d’environnement pour la connexion :

Merci bien Alain

Désolé pour le gras en gros caractères, c’est ma première utilisation de l’éditeur.

Bonjour Alain,

Si la base est chez Ouvaton :

nom court pour cette source : ce que tu veux
type de la base : mysql
serveur distant : sql01.ouvaton.coop
port utilisé : laisser vide
nom de la base : colonne “Base” sur ouvadmin : 01_000xxxx
paramètres de connexion : laisser vide
variable d’environnement pour la connexion : Laisser vide

Si c’est ailleurs, c’est pas bien ! Mais ça ne doit pas être très différent à paraméter.

Bonjour à tous,

Eh oui, le temps passe…
L’inclusion d’un fichier distant (include_remote_file) fonctionne toujours bien, mais est toujours limitée à un seul attribut.
Maintenant, et même si c’est l’ennemi du bien, j’essaie de reprendre la gestion de source pour faire mieux ! En effet, avec la version 6.2.60, l’inclusion d’attributs personnalisés depuis une base SQL est disponible (include_sql_ca).

Hélas, si je peux bien récupérer le mail et un quelconque des attributs de la base, je tourne en rond depuis deux jours pour en récupérer davantage !

J’ai bien réussi à créer les attributs personnalisés et les colonnes apparaissent bien dans la liste des abonnés… mais elles restent désespérément vides.
J’ai bien paramétré la configuration des sources de données « Extraction d’attributs utilisateurs par requête SQL (include_sql_ca) ». Sans succès. Les paramètres de connexion à la base sql sont identiques à ceux de la requète principale (include_sql_query), donc pas de problème. À part la requète elle-même (sql_query), il n’y a que deux champs de plus à fournir : (name) et (email_entry). J’ai essayé, en vain, toutes les combinaisons qui me sont passées par la tête.

Si quelqu’un a réussi à activer cette fonction ou a une idée, même toute petite, je suis naturellement preneur. Et il aura droit à toute ma reconnaissance…

Rebonjour,

Bon, j’ai trouvé une déclaration de ce bug sur github :

Et la méthode de résolution par modification d’un fichier :

Il semble y avoir une suite :

mais je n’ai pas tout compris !

Je ne sais pas si quelqu’un a accès à ce fichier pour le modifier… ou s’il faut déposer un ticket… ou s’il faut attendre la version 6.2.72 qui, semble-t-il, assurera le bon fonctionnement ?