簡體   English   中英

MailApp AppScript:如何使用 MailApp 將 email 發送到線程?

[英]MailApp AppScript: How to send an email to a thread using MailApp?

我正在使用Appscript的 mailApp class 發送每日電子郵件,如下所示:

MailApp.sendEmail({to: emails[0],subject:subjectLine,htmlBody: htmlContent,cc: emails.slice(1,emails.length).join(",")});

我觀察到,對於subjectline = "TestEmail"如果多次發送它會被發送到一個新線程:

示例圖像

我真正想要的是不是 MailApp 創建一個新線程,如果主題行相同,它必須將其發送到舊線程。 例如: subjectline = "TestEmail"那么這個主題內的所有郵件都應該屬於同一個而不是分散的,如上所示。 並且僅當主題行更改時,它們才應落入新的 email 線程中。

有沒有人遇到過同樣的問題? 有誰知道同樣的解決方法? 如果您有相同的解決方案,請告訴我。

提前致謝。

Class MailApp

  • 此服務允許腳本代表用戶發送 email。 另請參閱 Gmail 服務。 與 Gmail Service 不同,Mail Service 的唯一目的是發送 email; 它無法訪問用戶的 Gmail 帳戶。

解決方法:

您可以在使用 Gmail 服務發送電子郵件時防止創建新線程

Gmail 服務

  • 此服務允許您發送 email、撰寫草稿、管理標簽、標記消息和線程,以及執行各種其他 Gmail 帳戶管理任務。

你需要做什么:

  1. 搜索具有特定主題的線程
  2. 回復那個帖子

示例代碼:

  var thread = GmailApp.search('in:anywhere subject:"Test_Email1" ')[0];
  Logger.log(thread);
  
  var invalidThread = GmailApp.search('in:anywhere subject:"Test_Email" ')[0];
  Logger.log(invalidThread);
  
  if (thread){
    thread.reply("This is a reply");
  }else{
    Logger.log("Subject not found in mail");
  }

  var emailQuotaRemaining = MailApp.getRemainingDailyQuota();
  Logger.log("Remaining email quota: " + emailQuotaRemaining);

GmailApp.search()可讓您搜索 Gmail 中的特定查詢。 這將返回一個GmailThread[]類型,它是與此查詢匹配的 Gmail 線程數組

  • 在這個示例代碼中,我已經創建了一個主題為“Test_Email1”的線程,並嘗試使用Gmail 搜索運算符“in:anywhere subject:”Test_Email1“”訪問該線程
  • 此搜索運算符將在 Gmail 的任何位置搜索主題為 Test_Email1 的線程,包括垃圾郵件和 thrash 文件夾。
  • 我還包含了一個示例代碼,其中主題“Test_Email”不存在,它將返回一個空數組。
  • 找到線程后,您可以使用GmailThread.reply()在當前線程中回復。

GmailThread 中還有其他回復選項。 有關更多信息,您可以訪問此鏈接: https://developers.google.com/apps-script/reference/gmail/gmail-thread

這樣,您可以決定是否需要在 Gmail 中創建新線程或使用現有線程回復。


Output:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM