Aller au contenu

Vérifier l'adresse de chaque réponse Google Forms

Intégration Formulaires et sites

Un script lié à la feuille de réponses interroge PricklyMails sur l'adresse de chaque nouvelle réponse Google Forms et inscrit sa recommandation à côté.

Pas de module complémentaire à installer : un script lié à la feuille de réponses de Google Forms vérifie l'adresse de chaque nouvelle réponse et inscrit sa recommandation à côté.

Vérifier gratuitement

Pas à pas

Vérifier chaque réponse en quatre étapes

  1. Dans PricklyMails

    Créer une clé API dans PricklyMails

    1. Dans le tableau de bord, ouvrez Clés API et cliquez sur Nouvelle clé.
    2. À l'étape Environnement, choisissez d'abord Test : la clé commence par pm_test_, répond par des résultats prédéfinis, ne facture rien et ne contacte aucun serveur de messagerie.
    3. Copiez la clé dès qu'elle s'affiche : elle n'est montrée qu'une fois.

    Astuce

    L'offre Free ne compte qu'une clé : une fois que tout fonctionne, révoquez la clé de test, puis créez-en une en Production.

  2. Dans Google Forms

    Ajouter le script aux réponses Google Forms

    Le script vit dans la feuille de calcul qui reçoit les réponses, et garde la clé dans ses propriétés de script, hors du code.

    1. Dans le formulaire, cliquez sur Réponses, puis sur Plus puis Sélectionner une destination pour les réponses, et créez une feuille de calcul ou choisissez-en une.
    2. Dans la feuille de calcul, ajoutez une colonne intitulée PricklyMails après la dernière.
    3. Cliquez sur Extensions puis Apps Script.
    4. Remplacez le code par le code ci-dessous, et réglez EMAIL_COLUMN sur l'en-tête de la colonne qui contient l'adresse.
    5. Ouvrez Paramètres du projet, cliquez sur Ajouter une propriété de script, puis saisissez PRICKLYMAILS_KEY comme propriété et votre clé de test comme valeur.
    6. Cliquez sur Enregistrer les propriétés de script.

    Le script demande à PricklyMails de répondre en 12 secondes (Prefer: wait), puis inscrit la recommandation dans la colonne PricklyMails de la ligne de la réponse.

    Code.gs
    const VERIFY_URL = 'https://api.pricklymails.com/api/verify'
    // The headers of the response sheet's address column and of the column the
    // script fills.
    const EMAIL_COLUMN = 'Email'
    const RESULT_COLUMN = 'PricklyMails'
    
    function installTrigger() {
        ScriptApp.newTrigger('verifyResponse')
            .forSpreadsheet(SpreadsheetApp.getActive())
            .onFormSubmit()
            .create()
    }
    
    function verifyResponse(event) {
        const email = event.namedValues[EMAIL_COLUMN]?.[0]
        if (!email) {
            return
        }
        const sheet = event.range.getSheet()
        const headers = sheet
            .getRange(1, 1, 1, sheet.getLastColumn())
            .getValues()[0]
        const column = headers.indexOf(RESULT_COLUMN) + 1
        if (0 === column) {
            return
        }
        sheet
            .getRange(event.range.getRow(), column)
            .setValue(recommendationFor(email))
    }
    
    // Without an answer in time, the address is one to look at, like any review.
    function recommendationFor(email) {
        const key =
            PropertiesService.getScriptProperties().getProperty('PRICKLYMAILS_KEY')
        const response = UrlFetchApp.fetch(VERIFY_URL, {
            method: 'post',
            contentType: 'application/json',
            headers: { Authorization: `Bearer ${key}`, Prefer: 'wait=12' },
            payload: JSON.stringify({ email }),
            muteHttpExceptions: true,
        })
        if (200 !== response.getResponseCode()) {
            return 'review'
        }
        const { verification } = JSON.parse(response.getContentText())
        return verification?.recommendation ?? 'review'
    }
    
    Comment l'API répond en un seul appel
    SourceAide officielle de Google Forms
  3. Dans Google Forms

    Activer la vérification de chaque réponse Google Forms

    Un déclencheur installable lance le script après chaque réponse. Le code le crée, il n'y a donc aucun menu à chercher.

    1. Dans l'éditeur de script, choisissez installTrigger dans la liste des fonctions, puis cliquez sur Exécuter.
    2. Autorisez les accès que Google demande : le script lit la feuille et appelle un service extérieur à Google.

    Attention

    Lancez installTrigger une seule fois : chaque exécution ajoute un déclencheur, et chaque déclencheur vérifie à nouveau la réponse.

    SourceAide officielle de Google Forms
  4. Dans Google Forms

    Essayer avec la clé de test

    1. Envoyez une réponse avec une adresse qui commence par invalid, comme invalid@example.com : la clé de test répond remove, et la ligne l'affiche.
    2. Envoyez-en une autre avec valid@example.com : la ligne affiche send.
    3. Là où vous avez rangé la clé, remplacez-la par une clé créée en Production : dès lors, chaque réponse est vérifiée pour de vrai et facturée comme toute vérification.

Ce que dit la colonne

La colonne contient la recommandation que l'API donne pour l'adresse, la même que dans le rapport d'une liste.

À envoyer
L'adresse est valide, ou hébergée chez un grand fournisseur qui accepte toutes les adresses sans rien confirmer. Vous envoyez normalement.
À revoir
Domaine qui accepte tout (catch-all), adresse générique comme contact@, boîte pleine, ou serveur qui n'a pas répondu, ou a refusé de répondre. Un coup d'œil s'impose avant l'envoi.
À retirer
L'adresse n'existe pas, son domaine ne reçoit pas d'email, elle est jetable, contient une faute de frappe ou est mal formée. Vous la retirez.
Pas de réponse à temps
Le script inscrit review : l'adresse peut fonctionner, et vous pouvez la vérifier à nouveau depuis le tableau de bord.

Questions fréquentes

Le formulaire peut-il refuser une adresse avant son envoi ?

Non. Google Forms ne contrôle une réponse qu'avec ses règles de validation, comme le format d'une adresse e-mail, et ne lance aucun script avant l'envoi : le script signale une adresse une fois la réponse reçue.

SourceAide officielle de Google Forms

Combien de réponses le script peut-il vérifier par jour ?

Google autorise 20 000 appels URL Fetch par jour sur un compte personnel et 100 000 sur un compte Google Workspace, et une durée totale de déclencheurs de 90 minutes par jour sur le premier, 6 heures sur le second.

SourceAide officielle de Google Forms

Avec quel compte le script tourne-t-il ?

Un déclencheur installable tourne avec le compte de la personne qui l'a créé, ses quotas et ses accès sont donc les siens. Quand une exécution échoue, Google envoie à cette personne un récapitulatif des échecs.

SourceAide officielle de Google Forms

Existe-t-il un module complémentaire PricklyMails pour Google Forms ?

Non, et il n'y a rien à installer : le script ci-dessus appelle l'API PricklyMails avec votre clé.

Ces marques appartiennent à leurs propriétaires respectifs. Les citer n'implique aucun partenariat.

Vérifiez votre liste avant votre prochain envoi.

1 000 jetons offerts à l'inscription, sans carte bancaire. Ensuite, vous ne payez que les réponses.