Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[RESOLU] Définir le mail par API

ffp17
Timide
Messages : 280
Inscription : 02 sept. 2016, 23:09
Localisation : 17

[RESOLU] Définir le mail par API

Message par ffp17 » 20 août 2019, 19:59

Bonjour,

Savez-vous s'il est possible de définir le mail via l'API.
J'ai plusieurs mails qui peuvent être modifier et qui sont stockés dans un virtuel. Est-il possible d'affecter le mail stocké dans mon virtuel au plugin MAIL via API ou autre moyen ?
J'ai essayé une url du type mais sans succès :
http://IP_JEEDOM/core/api/jeeApi.php?apikey=APIKEY&type=command&id=7344&setvalue="test@test.com"
Sinon est-il possible d'envoyer un mail en prenant l'adresse d'une variable ?
Merci et bonne soirée
Dernière édition par ffp17 le 21 août 2019, 17:30, édité 1 fois.

mecano91
Actif
Messages : 953
Inscription : 30 sept. 2014, 20:41
Localisation : Paris, France

Re: Définir le mail par API

Message par mecano91 » 20 août 2019, 20:09

C'est dans le plugin mail qu'il faut créer les destinataire ensuite il n'y a plus qu'a les utiliser en les choisissant dans les scénarios ou autres

Envoyé de mon MI 9 en utilisant Tapatalk


ffp17
Timide
Messages : 280
Inscription : 02 sept. 2016, 23:09
Localisation : 17

Re: Définir le mail par API

Message par ffp17 » 20 août 2019, 20:16

Bonjour mecano91

Merci de ton retour, et oui je sais bien qu'il faut créer les mails manuellement avant de les utiliser.
Mon problème c'est que je ne connais pas les mails à l'avance. Le but est de permettre à des locataires de saisir leur adresse mail pour recevoir des notifications du type la fenêtre est restée ouverte quand ils sont partis.
Je ne peux pas gérer ça manuellement à chaque locataire.

mecano91
Actif
Messages : 953
Inscription : 30 sept. 2014, 20:41
Localisation : Paris, France

Re: Définir le mail par API

Message par mecano91 » 20 août 2019, 20:37

À oui effectivement plus complexe peut être avec un scénario qui prendrait la valeur du virtuel pour l'envoi

Envoyé de mon MI 9 en utilisant Tapatalk


Avatar de l’utilisateur
Mguyard
Timide
Messages : 403
Inscription : 24 mars 2016, 11:29

Re: Définir le mail par API

Message par Mguyard » 21 août 2019, 00:44

Tu peux avoir plusieurs destinataires au même moment ou un seul ?
Tu le rempli comment ton virtuel ? A la main ?

Pourquoi pas un scénario avec un bloc code qui change la valeur du destinataire dans la commande « locataire » (en la prenant dans ton virtuel ou même mieux dans un calendrier « location » du plugin agenda) suivi de l’envoi du mail que tu veux.

Je pense que ça pourrait passer crème.
“La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.”

Albert Einstein

ffp17
Timide
Messages : 280
Inscription : 02 sept. 2016, 23:09
Localisation : 17

Re: Définir le mail par API

Message par ffp17 » 21 août 2019, 12:32

Mguyard a écrit :
21 août 2019, 00:44
Tu peux avoir plusieurs destinataires au même moment ou un seul ?
Tu le rempli comment ton virtuel ? A la main ?

Pourquoi pas un scénario avec un bloc code qui change la valeur du destinataire dans la commande « locataire » (en la prenant dans ton virtuel ou même mieux dans un calendrier « location » du plugin agenda) suivi de l’envoi du mail que tu veux.

Je pense que ça pourrait passer crème.
Bonjour,
Merci de vos retours.
Oui pourquoi pas utiliser un scénario avec un bloc code, ça me va bien.
Pas contre, dans le bloc code je fais comment pour envoyer le mail ?
L'url de l'api permet seulement de modifier le titre et le message :

Code : Tout sélectionner

https://IPJEEDOM/core/api/jeeApi.php?apikey=APIKEY&type=cmd&id=782&title=montitre&message=monmessage

Avatar de l’utilisateur
Mguyard
Timide
Messages : 403
Inscription : 24 mars 2016, 11:29

Re: Définir le mail par API

Message par Mguyard » 21 août 2019, 14:28

J'utiliserais plutôt l'API Jeedom directement dans le bloc code :
https://jeedom.github.io/documentation/ ... s/cmd.html

En gros :
- tu créer dans ton objet mail un commande 'locataire' qui sera générique
- Dans ton bloc code, tu cherches cette commande avec l'API Jeedom $cmd (ou tu récupère l'ID de la commande que tu appel) et tu set la valeur de la commande
- Puis en dehors de ton bloc code (mais toujours dans ton scenario, tu envoi ton mail.
Cela aura pour effet de configurer dans le plugin mail, une commande avec a chaque fois la bonne adresse du locataire. Du coup, après tu envoi le mail normalement.

Après tu peux aussi dire que le déclencheur de ton scenario, c'est ton virtuel comme ca quand tu changes ton virtuel tu change avec le scenario l'adresse mail dans la commande 'locataire' et après tu fais les envoi de mail normalement quand tu as besoin.

Une idée de à quoi peut ressembler le bloc code :

Code : Tout sélectionner

$cmdName = "#[Home][Mail][locataire]#";
$cmd = cmd::byString($cmdName);
$cmd->event(("<le nouveau mail du locataire"));
/!\ Pas testé du tout...
“La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.”

Albert Einstein

ffp17
Timide
Messages : 280
Inscription : 02 sept. 2016, 23:09
Localisation : 17

Re: Définir le mail par API

Message par ffp17 » 21 août 2019, 17:19

Merci pour le retour.
J'ai essayé mais malheureusement cela ne fonctionne pas.
Le cmd::byString() doit bien sélectionner la bonne commande, mais le event() n'affecte pas le nouveau mail.
Je pense qu'il faut arriver à sélectionner le bon attribut de #[Home][Mail][locataire]# avant de le mettre à jour. Comme c'est une commande message, il doit y avoir le Titre, le message et ce que j'essaie de changer le Mail.

Je crois avoir trouvé l'attribut à modifier, c'est recipient.
Si je fais le code suivant, dans les logs j'ai bien le mail enregistré qui s'affiche :

Code : Tout sélectionner

$cmdName = "#[Home][Mail][locataire]#";
$cmd = cmd::byString($cmdName);
$value = $cmd->getConfiguration("recipient");
echo $value;
Si j'essaie de modifier cet attribut, cela ne fonctionne pas:

Code : Tout sélectionner

$cmdName = "#[Home][Mail][locataire]#";
$cmd = cmd::byString($cmdName);
$cmd->setConfiguration("recipient", "nouveau mail du locataire");
Je ne comprends pas pourquoi.

ffp17
Timide
Messages : 280
Inscription : 02 sept. 2016, 23:09
Localisation : 17

Re: Définir le mail par API

Message par ffp17 » 21 août 2019, 17:28

C'est bon j'ai trouvé, il fallait sauvegarder la modification, évidemment.
Voici le code si cela peut aider quelqu'un d'autre et encore merci pour votre aide.

Code : Tout sélectionner

$cmdName = "#[Home][Mail][locataire]#";
$cmd = cmd::byString($cmdName);
$cmd->setConfiguration("recipient", "nouveau mail du locataire");
$cmd->save();

Répondre

Revenir vers « [Plugin Officiel] Mail »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités