Utiliser Excel et Gmail pour automatiser l'envoi d'emails personnalisés

Bonjour,

Avant tout, je précise que les emails présents dans mon fichier Excel ci-joint sont tous fictifs (je suppose qu'il faudra que j'utilise Google Sheets).

J'ai un email Gmail, je veux compléter le fichier ci-joint puis utiliser Google script pour aboutir à ce résultat (je ne sais pas faire le script):

1)Que le 1er email automatiquement envoyé depuis mon gmail soit destiné à: jean@blabvfgf.fr

Que l'objet de l'email soit: Venez acheter une Clio neuve

Que le corps de l'email soit: Bonjour, une Clio neuve est disponible, appelez-nous dès que possible pour la réserver. Les véhicules neufs partent très vite.

2)Que le 2ème email automatiquement envoyé depuis mon gmail soit destiné à: louis@louighgfcc.fr

Que l'objet de l'email soit: Venez louer une Mégane d'occasion

Que le corps de l'email soit: Bonsoir, une Mégane d'occasion est disponible, appelez-nous dès que possible pour la réserver. Elle a moins de 2 ans.

3)Que le 3ème email automatiquement envoyé depuis mon gmail soit destiné à: lrobert@robhg245445.fr

Que l'objet de l'email soit: Venez essayer une BMW rouge

Que le corps de l'email soit: Rebonjour, sachez qu'une BMW rouge est disponible, appelez-nous dès que possible pour la réserver. Essai sur route, 2 ans de permis minimum.

La je n'ai complété que 3 lignes du fichier Excel ci-joint donc le script est censé envoyé 3 emails, mais si je complète 20 lignes le script est censé envoyé 20 emails.

Quel script faut-il que j'utilise?

Merci.

Bonjour,

Oui, je pense qu'une maquette de ton fichier GSheets est nécessaire.

Voici un modèle de script :

GmailApp.sendEmail(destinataire, objet, texte);

J'ai déjà inséré mon Excel en pièce jointe (le Google Sheet sera un copié collé de ce Excel).

Bonjour,

Pourquoi ne pas mettre le copier / coller mais en GSheets ???

et de le partager

https://www.sheets-pratique.com/fr/cours/partage

Sorry, je ne savais pas qu'on pouvait partager le lien, voici le lien:

https://docs.google.com/spreadsheets/d/1xJslq7fNWx5b9KMILLAi9Hz-yltemQPmllBeNwumoPY/edit?usp=sharing

J'ai ajouté une colonne pour la date d'envoi (ce qui évite aussi les doubles envois)

https://docs.google.com/spreadsheets/d/1S7K3xgiCDUqbdInNSK3C1dFzbdVIF-H-Bp1nLVM6m5M/edit?usp=sharing

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('↓ mailing ↓')
    .addItem('Envoyer', 'envoi')
    .addToUi();
}

function envoi() {
  var f = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var lastRow = f.getLastRow()
  for (var r=2;r<=lastRow;r++){
    if ( f.getRange('F'+r).getValue() == '' ){
      var destinataire = f.getRange('A'+r).getValue()
      var objet = f.getRange('B'+r).getValue().replace('<Vehicule>',f.getRange('C'+r).getValue()).replace('<Etat>',f.getRange('D'+r).getValue())
      var texte = f.getRange('E'+r).getValue().replace('<Vehicule>',f.getRange('C'+r).getValue()).replace('<Etat>',f.getRange('D'+r).getValue())
      GmailApp.sendEmail(destinataire, objet, texte);
      f.getRange('F'+r).setValue(new Date())
    }
  }
}

Bonjour,

J'ai chargé ton excel et ton script et je les ai enregistré et j'ai autorisé le script à s'exécuter mais cela ne fonctionne pas, cela m'affiche:

18:55:31AvisExécution démarrée

18:55:31ErreurException: Cannot call SpreadsheetApp.getUi() from this context.onOpen@ Code.gs:2

Ci-joint la capture de l'erreur, comment je peux faire pour ne plus avoir cette erreur d'exécution?

Peut-être que le problème vient du fait qu'il faut que je donne un nom spécifique au fichier Gsheets au au script, si c'est le cas quel nom dois-je leur donner?

Ou peut-être que je dois compléter les cases vides sous le titre "Envoi" (colonne F) que tu as créé, d'ailleurs je n'ai pas compris à quoi sert cette colonne et comment elle fonctionne, tu as dis 'J'ai ajouté une colonne pour la date d'envoi (ce qui évite aussi les doubles envois)' mais:

-est ce que les cases F2, F3, F4, etc. doivent être vides avant l'exécution du script?

-après l'exécution du script est-ce que ces cases F2, F3, F4, etc. se remplissent avec une heure et une date où qu'est ce qu'il est censé se passer?

J'avais fait une erreur de frappe dans le fichier c'est de ma faute (ne pas tenir compte de mes messages ci-dessus).

Maintenant ça me marque:

19:23:07AvisExécution démarrée

19:23:07AvisExécution terminée

Donc c'est censé avoir fonctionné, mais quand je vais dans mes emails envoyés il n'y a rien, les emails n'ont pas été envoyé.

D'ailleurs je m'étais mis en destinataire et je ne reçois rien, bizarre, vous sauriez d'où ça vient?

Est-ce que j'aurais du compléter les cases F2 et F3 et F4 avant d'exécuter le script?

A quoi sert cette colonne F, décidément je ne comprends rien et je n'arrive pas à le faire fonctionner ce script pour aboutir au résultat que je souhaite, vous pouvez m'aider?

As-tu essayé sur le fichier que j'ai posté ? le tien n'était qu'en lecture, donc j'en ai fait une copie (en respectant les paramètres régionaux, j'ai vu que tu étais en GMT-8)

Je viens d'essayer avec mon email, je reçois bien les messages.

F sert juste à mettre la date d'envoi du mail et éviter de l'envoyer 2 fois.

Pour moi cela fonctionne via le menu en haut à droite ↓ mailing ↓ puis envoyer

Je suis désolé, ça na fonctionne toujours pas.

Je n'ai pas compris ce que tu veux dire par "GMT-8", j'ai essayé de retélécharger ton fichier mais Google me dit qu'il est dans ta corbeille et Google m'autorise à en faire uniquement une copie (pas à le télécharger directement), j'ai donc fait cette copie:

Est-ce que cette copie est au bon format (pas GMT-8)? D'ailleurs je suis en France je ne comprends pas pourquoi je suis sur du GMT-8.

Voici les étapes que j'ai suivi:

-J'ai créé une copie de ton Googlesheet, j'ai complété la colonne email avec des emails et je l'ai enregistré

-J'ai créé une copie de ton script et je l'ai enregistré

-J'ai donné les droits aux scripts pour qu'il ait le droit de s'exécuter

-Enfin contrairement à toi, je n'ai ni 'mailing' ni 'envoyer' j'ai simplement cliquer sur Exécuter et là j'ai:

Peut-être que le fait que je n'ai pas pu télécharger ton fichier mais que j'ai du en faire une copie a entrainé la création de GMT-8 et c'est peut etre cela qui casse tout? qu'en penses-tu? si c'est cela peux-tu ressortir de fichier de ta corbeille le temps que je le télécharge?

Je pense que ton script est dissocié de ton fichier et c'est pour cela que cela ne fonctionne pas. Sinon le lancement de la fonction onOpen à partir de l'éditeur de script fonctionne et crée ce menu. Normalement c'est automatique à l'ouverture.

Si tu as copié mon fichier, le script s'est aussi copié et tu n'as pas à le refaire.

As-tu essayé en l'état mon fichier ?

As-tu ce menu en haut à droite quand tu ouvres le fichier que j'ai posté (on verra ensuite comment le dupliquer) ?

Laisse tomber GMT-8, cela n'a pour le moment aucune importance (on verra cela aussi ensuite).

image

Peut-être que le problème vient de là:

Je remarque que dans ton code app script il est écrit ".addItem('Envoyer', 'envoi')"

alors que moi je n'ai à ma disposition ni "Envoyer" ni "Envoi" à ma disposition, j'ai juste "Exécuter"

Donc je me suis dit que tu es certainement sur une ancienne version de l'éditeur de script c'est à dire celle-ci:

mais même dans cette ancienne version je n'ai ni "mailing" ni "envoyer"

Donc je me suis remis sur la nouvelle version de l'éditeur de script dans laquelle j'ai juste "Exécuter"

Si je résume:

1)je ne peux pas télécharger ton ancien fichier car il est dans ta corbeille

2)J'ai fait une copie de ton fichier dans ta corbeille mais si ça se trouve mon macbook déconne et l'a convertie en gmt8 pour une raison que j'ignore

3)Ma version actuelle de google app script contient "exécuter" elle ne contient ni "mailing" ni "envoyer" alors que le code de ton script contient "mailing" et "envoyer"

4)L'ancienne version de google app script que j'ai essayé d'utiliser aujourd'hui ne contient ni "mailing" ni "envoyer" alors que le code de ton script contient "mailing" et "envoyer"

J'ai l'impression d'être sourd et malentendant et d'essayer d'écrire puis de jouer la 5ème symphonie de Beethoven.

Grace à ton dernier message, tout fonctionne parfaitement à la perfection c'est formidable

J'ai copié ton fichier et j'ai tout suivi à la lettre, effectivement le script n'était pas rattaché au googlesheet et c'est de là que venaient tous les problèmes, maintenant j'ai tout qui s'affiche comme il faut et tout qui fonctionne parfaitement.

Je vais mettre ce forum en résolu, est ce que tu saurais juste d'ou vient ce problème de GMT8? j'ai acheté mon mac en France et je travaille en France je n''utilise pas de VPN.

Comment je peux faire pour que je sois dans le fuseau horaire normal?

Cool ! bon, c'est vrai que la première fois, on s'y perd un peu.

GMT moins 8h correspond à San Francisco, côté Est des Etats-Unis. Comme c'est un mac, cela vient peut-être de là par défaut. Mais tu peux changer en allant dans les paramètres : Fichier > Paramètres de calcul

Rechercher des sujets similaires à "utiliser gmail automatiser envoi emails personnalises"