[RESOLU] Définir le mail par API
[RESOLU] Définir le mail par API
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
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.
Re: Définir le mail par API
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
Envoyé de mon MI 9 en utilisant Tapatalk
Re: Définir le mail par API
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.
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.
Re: Définir le mail par API
À 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
Envoyé de mon MI 9 en utilisant Tapatalk
Re: Définir le mail par API
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.
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
Albert Einstein
Re: Définir le mail par API
Bonjour,Mguyard a écrit : ↑21 août 2019, 00:44Tu 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.
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
Re: Définir le mail par API
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 :
/!\ Pas testé du tout...
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"));
“La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.”
Albert Einstein
Albert Einstein
Re: Définir le mail par API
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 :
Si j'essaie de modifier cet attribut, cela ne fonctionne pas:
Je ne comprends pas pourquoi.
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;
Code : Tout sélectionner
$cmdName = "#[Home][Mail][locataire]#";
$cmd = cmd::byString($cmdName);
$cmd->setConfiguration("recipient", "nouveau mail du locataire");
Re: Définir le mail par API
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.
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();
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité