Est-il possible d'envoyer des e-mails de Google par URL?
Je n'ai pas trouvé de moyen documenté pour envoyer des e-mails via l'API GMAIL, en utilisant l'URL (requête GET), quelque chose comme ceci:
https://example_api/?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass
des idées ou des astuces pour y parvenir? (donc, je pourrais utiliser un mot de passe simple ou d'application).
Réponses
Je crois que votre objectif est le suivant.
- Vous souhaitez envoyer un e-mail en accédant à l'URL comme en
https://example_api/?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-passutilisant l'API Gmail.
Je pensais que votre objectif pouvait être atteint à l'aide des applications Web créées par Google Apps Script. Dans ce cas, le script peut être un simple. Donc, dans cette réponse, je voudrais vous proposer d'atteindre votre objectif en utilisant les Web Apps créées par Google Apps Script.
Usage:
Veuillez suivre la procédure suivante.
1. Créez un nouveau projet de Google Apps Script.
Un exemple de script de Web Apps est un script Google Apps. Veuillez donc créer un projet de Google Apps Script.
Si vous souhaitez le créer directement, veuillez accéder à https://script.new/. Dans ce cas, si vous n'êtes pas connecté à Google, l'écran de connexion s'ouvre. Veuillez donc vous connecter à Google. Ainsi, l'éditeur de script de Google Apps Script est ouvert.
2. Préparez le script.
Veuillez copier et coller le script suivant (Google Apps Script) dans l'éditeur de script. Ce script est destiné aux applications 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. Déployez des applications Web.
- Dans l'éditeur de script, ouvrez une boîte de dialogue par "Publier" -> "Déployer en tant qu'application web".
- Sélectionnez «Utilisateur accédant à l'application Web» pour «Exécuter l'application en tant que:» .
- Ainsi, le script est exécuté en tant qu'utilisateur ayant accédé aux applications Web.
- Sélectionnez "Tout le monde" pour "Qui a accès à l'application:" .
- Dans ce cas, veuillez accéder aux Web Apps à l'aide du navigateur. De cette manière, lorsque vous vous connectez à Google, les applications Web peuvent être utilisées.
- Et, dans ces paramètres, lorsque «l'utilisateur A» accède aux applications Web en se connectant à Google, «l'utilisateur A» peut également envoyer l'e-mail en utilisant son propre Gmail. Dans ce cas, veuillez ajouter
{email: "###", password: "###"}"Utilisateur A"allowedUsersdans le script. De cette manière, seuls les utilisateurs enregistrés peuvent envoyer l'e-mail. - Si vous ne souhaitez pas partager avec d'autres utilisateurs, veuillez définir
Execute the app as: MeetWho has access to the app: Only myself.
- Cliquez sur le bouton «Déployer» comme nouvelle «version du projet».
- Ouvre automatiquement une boîte de dialogue de "Autorisation requise".
- Cliquez sur "Examiner les autorisations".
- Sélectionnez votre propre compte.
- Cliquez sur "Avancé" dans "Cette application n'est pas vérifiée".
- Cliquez sur "Aller au ### nom du projet ### (unsafe)"
- Cliquez sur le bouton "Autoriser".
- Cliquez sur OK".
- Copiez l'URL des applications Web. C'est comme
https://script.google.com/macros/s/###/exec.- Lorsque vous avez modifié le script Google Apps, veuillez le redéployer en tant que nouvelle version. Ainsi, le script modifié est reflété dans les applications Web. Veuillez faire attention à cela.
4. Test des applications Web.
Veuillez accéder à l'URL de vos applications Web à l'aide de votre navigateur en incluant les paramètres de requête comme suit. Lorsque vous êtes déjà connecté à Google, le script de Web Apps est exécuté.
https://script.google.com/macros/s/###/exec?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass
Résultat:
Lorsque script ci - dessus est exécuté et auth_useret passsont inclus dans allowedUsers, Email was sent.est retourné.
Remarque:
- Lorsque vous avez modifié le script des applications Web, veuillez redéployer les applications Web en tant que nouvelle version. Ainsi, le dernier script est reflété dans les applications Web. Veuillez faire attention à cela.
- Si vous souhaitez accéder aux applications Web à l'aide d'un script et d'une curl, il est nécessaire d'y accéder à l'aide du jeton d'accès. Dans ce cas, incluez la portée de
https://www.googleapis.com/auth/drive.file(dans certains cas, cela pourrait fonctionner/driveou/drive.readonly) - Le script Google Apps est un exemple de script simple pour expliquer la méthode pour atteindre votre objectif. Veuillez donc le modifier en fonction de votre situation actuelle.
Références:
- Applications Web
- Tirer parti des applications Web avec Google Apps Script