"본 메일은 당사 직원과 명함 교환하신 분에게 보내드립니다"의 전달 정지를하기 위해 GAS로 메일을 추출했다
여러분은, 「본 메일은 폐사 직원과 명함 교환 받은 분에게 보내고 있습니다」라고 하는 메일을 받은 적이 있습니까.
나는 엄청 받은 적이 있습니다 ...!
그리고, 지금 전부 「배송 정지」누르고 싶다! ! 모두!
'폐사 직원과 명함 교환'이라는 단어만으로 Gmail도 '/다수'라는 애매한 답변을 하기 시작했다.
배달 정지 자동화는 내 기술력으로는 무리이므로, 우선,
Gmail의 특정 단어 검색으로 스프레드시트에 목록을 내보내고 게재 중지 목록 만들기
1. 검색할 결과 제목을 스프레드시트에 입력합니다.
스프레드시트를 만들고,
A열부터 차례로
타임스탬프
보낸 사람 주소
제목
본문 요약
메일 확인
라고 제목을 넣어 둡니다.
이번에는 제목 문자열을 참조하는 코드를 작성하지 않으므로 모든 제목에서 괜찮습니다.
(그러나, 취득하는 API의 항목은 상기를 의미하는 내용이 되므로, 따라서)
2. 스크립트 편집기에서 메일을 가져온 것을 스프레드시트에 반영
도구 > 스크립트 편집기를 엽니다.
우선 Gmail에서 검색합니다.
이번은 히트 워드에 가능한 한 통상의 명함 교환 인사가 포함되지 않게, 「폐사 직원과 명함 교환」을 채용했습니다.
이 지정만 하면, 나머지는 이하의 코드로 가동합니다.
function searchContactMail() {
const query = '"弊社社員と名刺交換"';
const start = 0;
const max = 100;
const threads = GmailApp.search(query, start, max);
const messagesForThreads = GmailApp.getMessagesForThreads(threads);
const values = [];
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const ids = sheet.getRange(2, 6, lastRow).getValues().flat();
for(const messages of messagesForThreads){
const message = messages[0];
const id = message.getId();
if(!ids.includes(id)){
const record = [
message.getDate(),
message.getReplyTo(),
message.getSubject(),
message.getPlainBody().slice(0,100),
message.getThread().getPermalink(),
];
values.push(record);
}
}
if(values.length > 0){
sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values);
}
}
3. 트리거 설정
현재 프로젝트 트리거를 클릭하여 Apps Script 프로젝트의 트리거 화면으로 전환합니다.
화면 오른쪽 하단에서 "트리거 추가"를 누르고 어느 시점에서 스프레드시트를 업데이트할지 알려줍니다.
이번에는 메일 검색을 시작하는 타이밍이므로 날짜별로 돌립니다.
즉각 배달 정지에 대응할 필요도 없고, 스톡형의 리스트를 생성하는 이미지이므로, 1일 1회 확인하면 좋을 것입니다.
"저장"을 눌러 완료됩니다.
4. 스크립트를 실행하여 목록 만들기
스크립트 편집기로 돌아가서 실행을 눌러 스프레드시트로 돌아갑니다.
으으아아아아아아아~~~~~~~
한 번에 돌린 것만으로 52건 나왔다··· 괴로운···
하지만 전달원은 4사 정도였기 때문에 안심했습니다 😠😠😠
이 URL에서 메일로 전환하여 평소에는 열리지 않는 Gmail의 '프로모션 폴더'에 있는 해당 메일에서 전송 중지 절차를 합니다.
덤
정확도를 높이고 싶은 사람이 있다면,
function searchContactMail() {
const query = '"弊社社員と名刺交換"';
const start = 0;
const max = 100;
const threads = GmailApp.search(query, start, max);
const messagesForThreads = GmailApp.getMessagesForThreads(threads);
const values = [];
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.getLastRow();
const ids = sheet.getRange(2, 6, lastRow).getValues().flat();
for(const messages of messagesForThreads){
const message = messages[0];
const id = message.getId();
if(!ids.includes(id)){
const record = [
message.getDate(),
message.getReplyTo(),
message.getSubject(),
message.getPlainBody().slice(0,100),
message.getThread().getPermalink(),
];
values.push(record);
}
}
if(values.length > 0){
sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values);
}
}
근처를 추가하면 범용성 높아질 것 같습니다.
나는 여가 시간에 뽀찌뽀찌 배달 중지하기 위해이 스톡리스트를 반년에 분기에 한 번 정도 들여다 보겠습니다.
참고
Gmail로 시작하는 자동화 생활
Reference
이 문제에 관하여("본 메일은 당사 직원과 명함 교환하신 분에게 보내드립니다"의 전달 정지를하기 위해 GAS로 메일을 추출했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rechiba3/items/d98d39c3cbc6e554cbdf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여("본 메일은 당사 직원과 명함 교환하신 분에게 보내드립니다"의 전달 정지를하기 위해 GAS로 메일을 추출했다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rechiba3/items/d98d39c3cbc6e554cbdf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)