Möglichkeit, E-Mails von Google per URL zu senden?
Ich konnte keinen dokumentierten Weg finden, um E-Mails über die GMAIL-API mithilfe der URL (GET-Anfrage) zu senden.
https://example_api/?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass
Irgendwelche Ideen oder Tricks, um das zu erreichen? (Also könnte ich ein einfaches oder App-Passwort verwenden).
Antworten
Ich glaube Ihr Ziel wie folgt.
- Sie möchten eine E-Mail senden, indem Sie wie
https://example_api/?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-passmithilfe der Google Mail-API auf die URL zugreifen .
Ich dachte, dass Ihr Ziel mit Web Apps erreicht werden kann, die mit Google Apps Script erstellt wurden. In diesem Fall kann das Skript einfach sein. In dieser Antwort möchte ich vorschlagen, Ihr Ziel mit Web Apps zu erreichen, die mit Google Apps Script erstellt wurden.
Verwendung:
Bitte machen Sie den folgenden Ablauf.
1. Erstellen Sie ein neues Projekt von Google Apps Script.
Das Beispielskript für Web Apps ist ein Google Apps-Skript. Erstellen Sie daher bitte ein Projekt von Google Apps Script.
Wenn Sie es direkt erstellen möchten, greifen Sie bitte auf zu https://script.new/. In diesem Fall wird der Anmeldebildschirm geöffnet, wenn Sie nicht bei Google angemeldet sind. Melden Sie sich also bitte bei Google an. Auf diese Weise wird der Skripteditor von Google Apps Script geöffnet.
2. Bereiten Sie das Skript vor.
Bitte kopieren Sie das folgende Skript (Google Apps Script) und fügen Sie es in den Skripteditor ein. Dieses Skript ist für die Web Apps.
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. Stellen Sie Web Apps bereit.
- Öffnen Sie im Skripteditor ein Dialogfeld über "Veröffentlichen" -> "Als Web-App bereitstellen".
- Wählen Sie "Benutzer, der auf die Web-App zugreift" für "App ausführen als:" .
- Auf diese Weise wird das Skript als der Benutzer ausgeführt, der auf die Web-Apps zugegriffen hat.
- Wählen Sie "Jeder" für "Wer hat Zugriff auf die App:" .
- In diesem Fall greifen Sie bitte über den Browser auf die Web Apps zu. Auf diese Weise können die Web-Apps verwendet werden, wenn Sie sich bei Google anmelden.
- Wenn in diesen Einstellungen "Benutzer A" über die Anmeldung bei Google auf die Web-Apps zugreift, kann "Benutzer A" die E-Mail auch über eigenes Google Mail senden. In diesem Fall fügen Sie bitte
{email: "###", password: "###"}"Benutzer A"allowedUsersin das Skript ein. Auf diese Weise können nur registrierte Benutzer die E-Mail senden. - Wenn Sie nicht mit anderen Benutzern teilen möchten, setzen Sie bitte
Execute the app as: MeundWho has access to the app: Only myself.
- Klicken Sie auf die Schaltfläche "Bereitstellen" als neue "Projektversion".
- Öffnen Sie automatisch ein Dialogfeld mit dem Titel "Autorisierung erforderlich".
- Klicken Sie auf "Berechtigungen überprüfen".
- Wählen Sie ein eigenes Konto.
- Klicken Sie unter "Diese App wird nicht überprüft" auf "Erweitert".
- Klicken Sie auf "Gehe zu ### Projektname ### (unsicher)".
- Klicken Sie auf "Zulassen".
- OK klicken".
- Kopieren Sie die URL von Web Apps. Es ist wie
https://script.google.com/macros/s/###/exec.- Wenn Sie das Google Apps-Skript geändert haben, stellen Sie es bitte als neue Version erneut bereit. Dadurch wird das geänderte Skript in Web Apps wiedergegeben. Bitte seien Sie vorsichtig.
4. Testen von Web Apps.
Bitte greifen Sie mit Ihrem Browser auf die URL Ihrer Web Apps zu, indem Sie die folgenden Abfrageparameter angeben. Wenn Sie bereits bei Google angemeldet sind, wird das Skript von Web Apps ausgeführt.
https://script.google.com/macros/s/###/exec?action=send&[email protected]&message=hello&[email protected]&pass=xyz-app-pass
Ergebnis:
Wenn obige Skript ausgeführt wird und auth_userund passsind eingeschlossen in allowedUsers, Email was sent.zurückgeführt wird.
Hinweis:
- Wenn Sie das Skript von Web Apps geändert haben, stellen Sie die Web Apps erneut als neue Version bereit. Auf diese Weise wird das neueste Skript in Web Apps wiedergegeben. Bitte seien Sie vorsichtig.
- Wenn Sie mithilfe eines Skripts und einer Locke auf die Web-Apps zugreifen möchten, müssen Sie mit dem Zugriffstoken darauf zugreifen. In diesem Fall geben Sie den Umfang an
https://www.googleapis.com/auth/drive.file(in einigen Fällen könnte funktionieren/driveoder/drive.readonly) - Das Google Apps-Skript ist ein einfaches Beispielskript zur Erläuterung der Methode zum Erreichen Ihres Ziels. Bitte ändern Sie es für Ihre aktuelle Situation.
Verweise:
- Web Apps
- Nutzen Sie Web Apps mit Google Apps Script