È possibile inviare posta da Google tramite URL?

Sep 09 2020

Non sono riuscito a trovare alcun modo documentato per eseguire l'invio di e-mail tramite l'API GMAIL, utilizzando l'URL (richiesta GET), qualcosa del genere:

https://example_api/?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass

qualche idea o trucco per realizzarlo? (quindi, potrei usare una password semplice o app).

Risposte

2 Tanaike Sep 10 2020 at 00:43

Credo il tuo obiettivo come segue.

Ho pensato che il tuo obiettivo possa essere raggiunto utilizzando le app Web create da Google Apps Script. In questo caso, lo script potrebbe essere un semplice file. Quindi in questa risposta, vorrei proporre di raggiungere il tuo obiettivo utilizzando le app Web create da Google Apps Script.

Utilizzo:

Si prega di eseguire il seguente flusso.

1. Crea un nuovo progetto di Google Apps Script.

Lo script di esempio di Web Apps è uno script di Google Apps. Quindi, crea un progetto di Google Apps Script.

Se vuoi crearlo direttamente, accedi a https://script.new/. In questo caso, se non sei loggato in Google, si apre la schermata di login. Quindi accedi a Google. In questo modo viene aperto l'editor di script di Google Apps Script.

2. Preparare lo script.

Copia e incolla il seguente script (Google Apps Script) nell'editor di script. Questo script è per le app Web.

function doGet(e) {
  const allowedUsers = [
    {email: "[email protected]", password: "xyz-app-pass"},
    ,
    ,
    ,
  ];  // If you want to allow other users to use this script, please add other emails and passwords to the `allowedUsers` array;
  const subject = "sample subject";

  const {action, to, message, auth_user, pass} = e.parameter;
  if (action == "send" && allowedUsers.some(({email, password}) => email == auth_user && password == pass)) {
    MailApp.sendEmail({to: to, subject: subject, body: message});
    return HtmlService.createHtmlOutput("Email was sent.");
  }
  return HtmlService.createHtmlOutput("Email was not sent.");
}

3. Distribuire applicazioni Web.

  1. Nell'editor di script, apri una finestra di dialogo selezionando "Pubblica" -> "Distribuisci come app web".
  2. Seleziona "Utente che accede all'app Web" per "Esegui l'app come:" .
    • In questo modo, lo script viene eseguito come l'utente che ha avuto accesso alle app Web.
  3. Seleziona "Chiunque" per "Chi ha accesso all'app:" .
  • In questo caso, accedi alle Web App utilizzando il browser. In questo modo, quando si accede a Google, è possibile utilizzare le app Web.
  • E, in queste impostazioni, quando "Utente A" accede alle Web App accedendo a Google, "Utente A" può anche inviare l'email utilizzando il proprio Gmail. In questo caso, aggiungi {email: "###", password: "###"}"Utente A" a allowedUsersnello script. In questo modo, solo gli utenti registrati possono inviare l'email.
  • Se non desideri condividere con altri utenti, imposta Execute the app as: Mee Who has access to the app: Only myself.
  1. Fare clic sul pulsante "Distribuisci" come nuova "versione del progetto".
  2. Apre automaticamente una finestra di dialogo "Autorizzazione richiesta".
    1. Fai clic su "Verifica autorizzazioni".
    2. Seleziona il tuo account.
    3. Fai clic su "Avanzate" in "Questa app non è verificata".
    4. Fai clic su "Vai al nome del progetto ### ### (non sicuro)"
    5. Fare clic sul pulsante "Consenti".
  3. Fare clic su "OK".
  4. Copia l'URL delle app Web. È come https://script.google.com/macros/s/###/exec.
    • Quando hai modificato Google Apps Script, ridistribuiscilo come nuova versione. In questo modo, lo script modificato viene riflesso nelle app Web. Per favore, stai attento.

4. Test delle app Web.

Accedi all'URL delle tue app Web utilizzando il browser includendo i parametri di query come segue. Quando sei già stato connesso a Google, viene eseguito lo script di Web Apps.

https://script.google.com/macros/s/###/exec?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass
Risultato:

Quando lo script precedente viene eseguito e auth_usere passsono inclusi allowedUsers, Email was sent.viene restituito.

Nota:

  • Quando hai modificato lo script delle app Web, ridistribuisci le app Web come nuova versione. In questo modo, l'ultimo script si riflette nelle app Web. Per favore, stai attento.
  • Se si desidera accedere alle Web App utilizzando uno script e un curl, è necessario accedervi utilizzando il token di accesso. In questo caso, includere l'ambito di https://www.googleapis.com/auth/drive.file(in alcuni casi, potrebbe funzionare /driveo /drive.readonly)
  • Google Apps Script è un semplice script di esempio per spiegare il metodo per raggiungere il tuo obiettivo. Quindi modificalo per la tua situazione attuale.

Riferimenti:

  • App Web
  • Sfruttare le app Web con Google Apps Script