알림에서 보관할 때 Gmail을 읽은 상태로 표시


10

가장 최신 버전의 Gmail 앱은 알림에서 직접 보관 처리하거나 이메일에 답장을 선택할 수있는 훌륭한 기능입니다.

내 문제는 알림에서 알림을 보관하면 읽음으로 표시되지 않고 읽지 않은 상태로 유지된다는 것입니다. 어쨌든 그 문제를 해결할 수 있습니까?

알림에서 직접 보관 된 모든 전자 메일을 자동으로 읽은 것으로 표시하고 싶습니다.


1
나는 그것이 현재 가능하다고 믿지 않습니다. 변경할 수있는 유일한 조치는 아카이브 대신 삭제하는 것입니다.
ale

@AlEverett 대체 앱이나 적어도 Google 스크립트로 할 수 있기를 바랐습니다. = /
Malabarba

답변:


5

Google Script라고 했습니까?

Apps Script로 Gmail 읽기 표시

이 스크립트의 기본 개념은받은 편지함에없는 (즉, 보관 된) 메시지를 읽은 것으로 표시하는 것입니다.

  1. 머리 script.google.com는 스크립트를 시작합니다.
  2. 작은 팝업에서 Gmail 스크립트를 작성하도록 선택하십시오.
  3. 제공하는 모든 샘플 코드를 삭제하십시오.
  4. 이것을 다음으로 바꾸십시오 ( API reference를 사용 하여 작성 ) :

    함수 markArchivedAsRead () {
       var threads = GmailApp.search ( 'label : unread -label : inbox');
       GmailApp.markThreadsRead (threads);
     };
  5. 파일> 저장을 사용하여 프로젝트를 저장하십시오.

  6. 파일> 버전 관리를 사용하여 새 버전을 추가하고 "초기 버전"을 입력 한 후 제출하십시오.
  7. Run> markArchivedAsRead를 사용하여 테스트 실행을 수행하고 요청시 앱을 확인하고 권한을 부여하십시오.
  8. 리소스> 현재 프로젝트의 트리거를 사용하여 새 트리거를 추가하고 1 분마다 위의 기능을 실행하도록 선택하십시오.
  9. 스크립트를 다시 저장하고 종료하십시오.

마다 실행해야한다는 것을 모르겠지만 정기적으로 실행하는 한.

이것은 귀하의 문제에 대한 직접적인 답변이 아니며받은 편지함에없는 읽지 않은 메시지가있는 이유가있는 경우에는 효과가 없습니다.


읽지 않은 전자 메일을 직접 보관할 수있는 일부 필터가 있으며이를 읽지 않은 상태로 유지하고 싶지만 실제로는 좋은 시작입니다. 받은 편지함에 읽지 않은 스레드를 특정 레이블로 표시하는 두 번째 스크립트를 가질 수 있습니다. 그런 다음이 첫 번째 스크립트는 모든 보관 된 메시지 대신이 레이블이있는 읽은 상태로 보관 된 보관 된 메시지 만 표시합니다.
Malabarba

2
이것은 또한 약간의 버그가 있습니다. 메시지를 보관하고 스크립트를 실행할 기회가 있기 전에 새 메시지가 동일한 스레드에 도착하면 스크립트가 실행될 때 두 메시지가 모두 읽은 것으로 표시됩니다. GmailApp.search는 전체 스레드를 반환하기 때문에 스레드의 메시지 중 하나가받은 편지함에 있는지 상관하지 않습니다.
Malabarba

3

나는 그것을 다음 Google 스크립트 와 함께 작동하게했다 .
@AlEverett의 답변과 동일하지만 albox는받은 편지함을 완전히 건너 뛴 메시지 (필터 등)를 읽지 않은 것으로 표시되지 않습니다.

불행히도, 메시지를 매우 빠르게 보관하는 경향이 있다면 (평균 30 초 미만) 작동하지 않습니다.

/** Mark as read archived threads which were previously in the inbox (determined by the label "i"). **/
function cleanAndroidArchived(){
  markArchivedAsRead();
  labelInboxAsI();
}

function markArchivedAsRead() {
  var threads = GmailApp.search('in:unread label:i -label:inbox');
  var label = GmailApp.createLabel("i");
  label.removeFromThreads(threads);
  GmailApp.markThreadsRead(threads);
};

function labelInboxAsI() {
  var threads = GmailApp.search('in:unread label:inbox');
  var label = GmailApp.createLabel("i");
  label.addToThreads(threads);
};

2

@BruceConnor의 경우 문제를 해결했으며 스크립트가 작동하기 전에 기다려야합니다.

  1. 받은 편지함에있는 항목을 찾는 새 필터를 만들었습니다.
  2. "i"레이블을 할당합니다 (버전에 의해 생성됨).

Gmail은 필터가 아무 것도 일치하지 않는다고 불평하지만이 경우받은 편지함에 남아있는 모든 수신 메일과 일치합니다.

결과적으로 모든 새 수신 메시지는이 태그에 의해 자동으로 "기억됩니다". 그러면 보관소를 기록 할 때 스크립트가받은 편지함 목록을 "i"레이블과 비교하여 방금 보관 된 메시지를 파악한 다음 " 읽다". 모든 메시지가 보관 "i"대기열에 할당되므로 보관 대기하지 않아도됩니다.

보너스 : 또한 새 "i"레이블을 "메시지 목록에 숨기기"및 "라벨 목록에 숨기기"로 설정하여 전혀 표시되지 않습니다. (새 "i"레이블 옆에있는 작은 화살표를 클릭하고이 옵션을 선택하십시오.)


1

@ al-e의 답변은 효과가 있지만 의견에 언급 된 약간의 버그가 있습니다. 이 버그를 해결하기 위해 다른 버전의 스크립트를 만들었으며 몇 년 동안 성공적으로 사용했습니다. 사용중인 스크립트는 다음과 같습니다.

function markArchivedAsRead() {
  var threads = GmailApp.search('label:unread -label:inbox');
  for (var i=0; i<threads.length; i++)
  {
    var messages = threads[i].getMessages();
    var markUnread = 1;
    for (var j=0; j<messages.length; j++)
    {
      if (messages[j].isInInbox())
        markUnread = 0;
    }
    if (markUnread)
      threads[i].markRead();
  }
};
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.