je suis sous archlinux et j'ai thunderbird avec l'agenda ligntning dessus. J'ai synchronisé mon agenda avec google calendar grâce à un module, Provider for Google Calendar. Ainsi à chaque évènement, je recois dans ma boite gmail une notification. Je voulais recevoir cette notification par sms sur un simple mobile sous free par mail to sms. J'ai cherché et j'ai trouvé la page suivante:
J'ai suivi ce tuto en activant l'envoi de sms sur mon espace abonné free. Je n'ai pas encore essayé le programme, mais un pb vient à moi: J'aimerais que dans ce programme, il m'envoie les emails qui ne sont pas lu et qui ont été envoyé par Google Calendar.
//############################################################//
// //
// Freemobile AutoSMS via Gmail Label (V1.2) //
// //
// Script by CHAUVIN Julien for webinventif.com //
// Docs: https://developers.google.com/apps-script/ //
// //
//############################################################//
// -----------------------------------------------------
// Globals
// -----------------------------------------------------
LABEL_SMS = 'SMS Perso';
LABEL_SMS_LU = 'SMS Perso lu';
FREE_PASS = 'votre_clé_de_notification';
FREE_USER = 'votre_identifiant_freemobile';
THREAD_SINGLE_ALERT = false;//recevoir une seule alerte par "conversation" ou à chaque nouveau mail (même dans la même conversation)
LIMIT = 10;
// -----------------------------------------------------
// ReturnFreeUrl(message)
// Retourne l'url du service SMS remplie et formatée
// -----------------------------------------------------
function ReturnFreeUrl(message) {
message = message.replace(/(\r\n|\n|\r)/gm," ");//les sauts de lignes ne passent pas en GET, alors on nettoie
return "https://smsapi.free-mobile.fr/sendmsg?user="+FREE_USER+"&pass="+FREE_PASS+"&msg="+encodeURIComponent(message.substring(0,480));
}
// -----------------------------------------------------
// EnvoiSMS()
// Envoi un SMS pour chaque message non lu correspondant
// au label défini dans LABEL_SMS et réattribue le label
// LABEL_SMS_LU
// -----------------------------------------------------
function EnvoiSMS() {
var label = GmailApp.getUserLabelByName(LABEL_SMS);
var compt = label.getUnreadCount();
var singleAlert = 1;
if (compt != 0){
var labelLu = GmailApp.getUserLabelByName(LABEL_SMS_LU);
var threads = label.getThreads();
var maxMails = LIMIT;
if(!maxMails) maxMails = threads.length;
for (i = 0; i < maxMails; i++){
if(THREAD_SINGLE_ALERT) singleAlert = threads[i].getMessageCount();
if(threads[i].isUnread()){
var mailBody = threads[i].getMessages()[Number(singleAlert-1)];// get last message of the thread
var mailTitle = mailBody.getSubject();
var message = '[M]'+mailTitle+' || '+mailBody.getPlainBody();
var mailUrl = ReturnFreeUrl(message);
var response = UrlFetchApp.fetch(mailUrl);
threads[i].addLabel(labelLu);
threads[i].removeLabel(label);
}
}
}
}
Ainsi, j'ai vu les différents problèmes et voici mon nouveau code qui marche:
//############################################################//
// //
// Freemobile AutoSMS via Gmail Label (V1.2) //
// //
// Script by CHAUVIN Julien for webinventif.com //
// Docs: https://developers.google.com/apps-script/ //
// //
//############################################################//
// -----------------------------------------------------
// Globals
// -----------------------------------------------------
LABEL_SMS = 'SMS Perso';
LABEL_SMS_LU = 'SMS Perso lu';
FREE_PASS = 'xxxxxxxxxxx';
FREE_USER = 'xxxxxxx';
THREAD_SINGLE_ALERT = false;//recevoir une seule alerte par "conversation" ou à chaque nouveau mail (même dans la même conversation)
LIMIT = 10;
// -----------------------------------------------------
// ReturnFreeUrl(message)
// Retourne l'url du service SMS remplie et formatée
// -----------------------------------------------------
function ReturnFreeUrl(message) {
message = message.replace(/(\r\n|\n|\r)/gm," ");//les sauts de lignes ne passent pas en GET, alors on nettoie
return "https://smsapi.free-mobile.fr/sendmsg?user=xxxxxxx&pass=xxxxxxxxx&msg="+encodeURIComponent(message.substring(0,480));
}
// -----------------------------------------------------
// EnvoiSMS()
// Envoi un SMS pour chaque message non lu correspondant
// au label défini dans LABEL_SMS et réattribue le label
// LABEL_SMS_LU
// -----------------------------------------------------
function EnvoiSMS() {
var label = GmailApp.getUserLabelByName('Envoi sms');
var compt = label.getUnreadCount();
var singleAlert = 1;
if (compt != 0){
var labelLu = GmailApp.getUserLabelByName('Sms lu');
var threads = label.getThreads();
var maxMails = LIMIT;
if(!maxMails) maxMails = threads.length;
for (i = 0; i < maxMails; i++){
if(THREAD_SINGLE_ALERT) singleAlert = threads[i].getMessageCount();
if(threads[i].isUnread()){
var mailBody = threads[i].getMessages()[Number(singleAlert-1)];// get last message of the thread
var mailTitle = mailBody.getSubject();
var message = '[M]'+mailTitle+' || '+mailBody.getPlainBody();
var mailUrl = ReturnFreeUrl(message);
var response = UrlFetchApp.fetch(mailUrl);
threads[i].addLabel(labelLu);
threads[i].removeLabel(label);
}
}
}
}
Mais ne sachant pas trop utiliser les balises, je les ai toutes supprimé dans le programme en remplaçant par la valeur. J'aimerais mettre les balises mais je ne sais pas comment faire. En effet si Quelle valeur dois-je donner à ma variable Label_SMS pour qu'elle soit égale à "Envoi sms" et que la commande var label = GmailApp.getUserLabelByName(Label_SMS) marche ? De même pour les autres variables, peux tu me donner l'écriture exacte ? merci
J'ai re remplacé les valeurs par les variables, mais j'ai reçu avant de faire ceci le message suivant:
"L'exécution de votre script, Envoi sms, a récemment échoué. Un résumé des échecs est fourni ci-dessous. Pour configurer les déclencheurs pour ce script ou modifier vos paramètres pour recevoir les futures notifications d'échec, cliquez ici.
De plus j'avais un évènement sur mon agenda samedi à 10h et je n'ai reçu aucune notification par email. C'est peut-être lié...
Code google javascript envoi notifications sms
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Voila le code.