簡體   English   中英

使用 Gmail API 搜索包含特定 URL 的電子郵件

[英]Search for emails containg a specific URL using Gmail API

我正在 Gmail 中查找包含特定 URL 的所有電子郵件,例如:

http://www.example.com/page1/?utm_source=foo1234&utm_medium=bar

這無法通過 Gmail 網絡界面訪問(請參閱此處搜索語法):我嘗試搜索整個 URL、帶引號的相同文本或僅部分 URL(如foo1234utm_source=foo1234 ,所有這些查詢都沒有返回結果.

您可以通過向自己發送包含此 URL 的電子郵件來重現這一點(使用 URL 本身以外的顯示文本,您可以使用 CTRL+K、 “編輯鏈接”對其進行自定義),結果如下:

在此處輸入圖片說明

請注意,如果顯示的文本是 URL 本身,則存在搜索匹配,但這里我說的是顯示文本與 URL 不同的情況。 請參閱下面的注釋 (*)。

問題:是否可以從 Gmail API(例如在 Python 中)/帶有 Javascript 的 Google Apps 腳本進行更深入的搜索,允許查找包含特定 URL 的郵件?

如果是這樣,您將如何搜索包含此類 URL 的所有電子郵件?

我嘗試使用 Gmail Python API:

service = build('gmail', 'v1', credentials=creds)
r1 = service.users().messages().list(userId="me", q="utm_source=foo1234").execute()
r2 = service.users().messages().list(userId="me", q="http://www.example.com/page1/?utm_source=foo1234&utm_medium=bar").execute()

沒有成功。 有沒有辦法進行更深入的搜索?


注 (*):這是一個例子:

在此處輸入圖片說明

這對我有用:

function searchForUrls() {
  const ts = GmailApp.search('http');
  let html = "";
  ts.forEach((t,i) => {
    t.getMessages().forEach(m => {
      html += `<br>from: ${m.getFrom()} to: ${m.getTo()} msg: ${m.getPlainBody()}`;
    });
  }); 
  SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput("<textarea>" + html + "</textarea>"),'String Search');
}

暫無
暫無

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

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