Récupérer email contact Google pour envoie de mail via Apps Script
Bonjour,
Je suis malheureusement coincé pour paramétrer l'envoie automatique de mail.
J'ai un fichier excel dans lequel sont identifiés des contacts Google (à l'aide de @+nom). Je souhaite à travers Apps Script envoyer un email à l'adresse mail de ce contact google.
Je ne peux partager le fichier pour éviter de divulguer certaines informations, néanmoins sachez que c'est pour l'instant un test et que le contact se trouve en cellule C2.
Voici le script que j'ai écris, il fonctionne, mais aucun mail n'est reçu, avez-vous des idées ?
function envoyerEmail() {
var feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var plageDonnees = feuille.getDataRange();
var valeurs = plageDonnees.getValues();
for (var i = 1; i < valeurs.length; i++) {
var nomContact = valeurs[i][3]; // Colonne contenant le nom du contact
// Appel de la fonction pour récupérer l'adresse e-mail du contact
var email = getEmailFromContact(nomContact);
var message = valeurs[i][1]; // Colonne contenant les messages
var sujet = valeurs[i][0]; // Colonne contenant le sujet
if (email) {
// Récupérer les données pour la table
var tableDonnees = [];
for (var row = 1; row < 7; row++) {
var rowData = [];
if (valeurs[row] && valeurs[row].length > 3) {
for (var col = 3; col < 9; col++) { // Modifier les index des colonnes ici
rowData.push(valeurs[row][col]);
}
}
tableDonnees.push(rowData);
}
// Générer le code HTML de la table
var tableHTML = '<table style="border-collapse: collapse;">';
for (var row = 0; row < tableDonnees.length; row++) {
tableHTML += '<tr>';
for (var col = 0; col < tableDonnees[row].length; col++) {
tableHTML += '<td style="border: 1px solid black; padding: 5px;">' + tableDonnees[row][col] + '</td>';
}
tableHTML += '</tr>';
}
tableHTML += '</table>';
// Formatage du message en HTML avec la table
var messageHTML = '<p style="font-family: Arial, sans-serif; font-size: 14px;">' + message + '</p>' + tableHTML;
// Envoyer l'e-mail avec le format HTML
MailApp.sendEmail({
to: email,
subject: sujet,
htmlBody: messageHTML
});
}
}
}
function getEmailFromContact(nomContact) {
var contacts = ContactsApp.getContactsByName(nomContact);
if (contacts.length > 0) {
var email = contacts[0].getEmails()[0].getAddress();
return email;
}
return null;
}Merci par avance.
- Messages
- 688
- Excel
- 2010 - Gsheets
- Inscrit
- 14/08/2018
- Emploi
- responsable d'exploitation logistique
Il faut peut-être vérifier que la fonction getEmailFromContact renvoie correctement l'adresse e-mail du contact en fonction de son nom
En ajoutant un logger.log(), l'adresse email récupérée est-elle bonne?
function getEmailFromContact(nomContact) {
var contacts = ContactsApp.getContactsByName(nomContact);
if (contacts.length > 0) {
var email = contacts[0].getEmails()[0].getAddress();
Logger.log("Adresse e-mail récupérée pour " + nomContact + ": " + email);
return email;
}
return null;
}