了解电子邮件是否已发送"已发送"夹

时间:2016-01-31 14:24:47

标签: google-apps-script

对于给定的Gmail邮件,我想知道电子​​邮件是否已发送""文件夹中。

对于其他文件夹,有类 - isDraft() - isInInbox() - isInTrash()

但我找不到像#34; isInSent()"这样的课程。

如果电子邮件发送到"已发送"如何从google-apps-script中找到?文件夹?

2 个答案:

答案 0 :(得分:1)

.getFrom()将永远是你。

如果你想拥有isInSent()课程,你可以写下以下内容:

function isInSent(GmailMessageId) {
  return GmailApp.getMessageById(GmailMessageId).getFrom().indexOf(Session.getActiveUser()) != -1
}

如果运行脚本的人是发送已检查电子邮件的人,则此代码返回true,否则返回false

答案 1 :(得分:-1)

最后,我得到了以下对我有用的代码。它基于一种解决方法:

如果电子邮件不在任何其他文件夹中,那么它应该被“发送” - 文件夹

var messageById = GmailApp.getMessageById(message_id);

    //Classify message by folder in gmail
    if (messageById.isDraft()==true) {
      is_draft_email = "1";
    } else {
      is_draft_email = "0";
    }

    //isInInbox()?
    if (messageById.isInInbox()==true) {
      is_inbox_email = "1";
    } else {
      is_inbox_email = "0";
    }

    //isInTrash()?
    if (messageById.isInTrash()==true) {
      var is_in_trash_email = "1";
      } else {
        var is_in_trash_email = "0";
        }

    //isInChats()
    if (messageById.isInChats()==true) {
      var is_in_chats_email = "1";
      } else {
        var is_in_chats_email = "0";
        }

    //Is it a sent message?
    //There is no simple method known to check this. See posting on Stackoverflow:
    //Workaround: If Email is not in any of the other folders, then it mus be in "sent"-folder
    if ((is_draft_email == "0") && (is_inbox_email == "0") && (is_in_trash_email == "0") && (is_in_chats_email == "0")) {
      is_sent_email = "1";
    } else
    {is_sent_email = "0"}