URL ile Google'dan posta gönderilebilir mi?

Sep 09 2020

Url (GET isteği) kullanarak GMAIL API üzerinden e-posta göndermeyi başarmanın belgelenmiş bir yolunu bulamadım, buna benzer bir şey:

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

bunu başarmak için herhangi bir fikir veya numara? (yani, düz veya uygulama şifresi kullanabilirim).

Yanıtlar

2 Tanaike Sep 10 2020 at 00:43

Amacınızın aşağıdaki gibi olduğuna inanıyorum.

Google Apps Komut Dosyası tarafından oluşturulan Web Uygulamaları kullanılarak hedefinize ulaşılabileceğini düşündüm. Bu durumda komut dosyası basit olabilir. Bu nedenle, bu yanıtta, Google Apps Komut Dosyası tarafından oluşturulan Web Uygulamalarını kullanarak hedefinize ulaşmayı önermek istiyorum.

Kullanım:

Lütfen aşağıdaki akışı yapın.

1. Yeni Google Apps Komut Dosyası projesi oluşturun.

Web Apps komut dosyası örnek bir Google Apps Komut Dosyasıdır. Bu yüzden lütfen bir Google Apps Komut Dosyası projesi oluşturun.

Doğrudan oluşturmak istiyorsanız, lütfen şu adrese erişin: https://script.new/. Bu durumda Google'a giriş yapmadıysanız giriş ekranı açılır. Bu yüzden lütfen Google’a giriş yapın. Bununla, Google Apps Komut Dosyasının komut dosyası düzenleyicisi açılır.

2. Komut dosyası hazırlayın.

Lütfen aşağıdaki komut dosyasını (Google Apps Komut Dosyası) kopyalayıp komut dosyası düzenleyicisine yapıştırın. Bu komut dosyası Web Uygulamaları içindir.

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. Web Uygulamalarını Dağıtın.

  1. Komut dosyası düzenleyicide, "Yayınla" -> "Web uygulaması olarak dağıt" seçeneğiyle bir iletişim kutusu açın.
  2. " Uygulamayı şu şekilde çalıştır:" için " Web uygulamasına erişen kullanıcı" öğesini seçin .
    • Bununla, betik, Web Uygulamalarına erişen kullanıcı olarak çalıştırılır.
  3. " Uygulamaya erişimi olanlar:" için "Herkes" i seçin .
  • Bu durumda, lütfen tarayıcıyı kullanarak Web Uygulamalarına erişin. Bununla, Google'a giriş yaptığınızda Web Uygulamaları kullanılabilir.
  • Ve bu ayarlarda, "A Kullanıcısı" Google'da oturum açarak Web Uygulamalarına eriştiğinde, "A Kullanıcısı" da e-postayı kendi Gmail'i kullanarak gönderebilir. Bu durumda, lütfen komut dosyasına {email: "###", password: "###"}"Kullanıcı A" ekleyin allowedUsers. Bununla, yalnızca kayıtlı kullanıcılar e-postayı gönderebilir.
  • Diğer kullanıcılarla paylaşmak istemiyorsanız, lütfen Execute the app as: Meve ayarlayın Who has access to the app: Only myself.
  1. Yeni "Proje sürümü" olarak "Dağıt" düğmesini tıklayın.
  2. Otomatik olarak "Yetkilendirme gerekli" iletişim kutusunu açın.
    1. "İzinleri İncele" yi tıklayın.
    2. Kendi hesabını seçin.
    3. "Bu uygulama doğrulanmadı" bölümünde "Gelişmiş" i tıklayın.
    4. "### proje adına git ### (güvenli değil)" seçeneğine tıklayın
    5. "İzin Ver" düğmesini tıklayın.
  3. "Tamam" ı tıklayın.
  4. Web Uygulamalarının URL'sini kopyalayın. Gibi https://script.google.com/macros/s/###/exec.
    • Google Apps Komut Dosyasını değiştirdiğinizde, lütfen yeni sürüm olarak yeniden dağıtın. Bununla, değiştirilen komut dosyası Web Uygulamalarına yansıtılır. Lütfen buna dikkat edin.

4. Web Uygulamalarını Test Etme.

Lütfen aşağıdaki sorgu parametrelerini ekleyerek tarayıcınızı kullanarak Web Uygulamalarınızın URL'sine erişin. Google'da zaten oturum açtığınızda, Web Apps komut dosyası çalıştırılır.

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

Yukarıdaki komut çalıştırılır ve zaman auth_userve passiçerdiği allowedUsers, Email was sent.döndürülür.

Not:

  • Web Uygulamaları komut dosyasını değiştirdiğinizde, lütfen Web Uygulamalarını yeni sürüm olarak yeniden dağıtın. Bununla, en son komut dosyası Web Uygulamalarına yansıtılır. Lütfen buna dikkat edin.
  • Bir komut dosyası ve curl kullanarak Web Uygulamalarına erişmek istiyorsanız, erişim belirtecini kullanarak erişmeniz gerekir. Bu durumda, kapsamını ve https://www.googleapis.com/auth/drive.file(bazı durumlarda işe yarayabilir /driveya /drive.readonly)
  • Google Apps Komut Dosyası, hedefinize ulaşma yöntemini açıklayan basit bir örnek komut dosyasıdır. Bu yüzden lütfen gerçek durumunuza göre değiştirin.

Referanslar:

  • ağ uygulamaları
  • Google Apps Komut Dosyası ile Web Uygulamalarından yararlanma