ãããªæ©ã¿ããã¾ãããï¼
ãå¤å¤æãã§å¯ã¦ããéã«ããã客ãã¾ããåãåããã¡ã¼ã«ãå±ãã¦ãã¾ãã ã坿¥ã§ãã£ã¦ãããã³ãã¡ã¤ãã·ã§ãããæ¯ååã質åã«è¿ä¿¡ããã®ãå°å³ã«æéãé£ãã ãå¤åºä¸ã«ã²ã¨ã¾ããåä¿¡ãã¾ãããã ãã§ãè¿ããããã©ãã¹ããã§é·æãæã¤ã®ã¯ããã©ãã
ããã«ã¡ã¯ãçè·å¸«ãããªãã坿¥ã§Webã¨ã³ã¸ãã¢ããã¦ãã¦ãGoogle Apps Scriptï¼ä»¥ä¸GASï¼ãä¸å¿ã«æ±ã£ã¦ãã¾ããç§ã¯åã§ããç§ã以åãå¤å¤æãã§æ°ã¥ãããåãåããã6ä»¶ãã¾ã£ã¦ãã¦ãè¿ä¿¡ããããã«ãã£ã³ã»ã«ãããè¦ãçµé¨ãããã¾ããããã§å°å ¥ããã®ã **GASã«ããGmailèªåè¿ä¿¡**ãä»åã¯ãããã°ã©ãã³ã°åå¿è ã§ã5åã§ã³ãããã¦åãããæçã¬ã·ããã¾ã¨ãã¾ããã
ãGAS Gmail èªåè¿ä¿¡ãã§æ¤ç´¢ãã¦ããã«è¾¿ãçããæ¹ãããã®ã¾ã¾ã³ãããã¦åãããã¬ãã«ã§æ¸ãã¦ãã¾ããããã£ããããã¯ãã¼ã¯ãã¦ã使ããã ããã
Gmailã¨GASã飿ºãããå ¨ä½å
ã¾ããGASã§Gmailãèªåè¿ä¿¡ããä»çµã¿ã®å ¨ä½åããã£ããæ¼ããã¾ããããé£ãããã«è¦ãã¾ããããã£ã¦ãããã¨ã¯ã·ã³ãã«ã§ãã
- Gmailã§ãæªèªããç¹å®ã©ãã«ä»ãããªã©ã®æ¡ä»¶ã§ã¡ã¼ã«ãæ¤ç´¢ãã
- åå¾ããã¡ã¼ã«ã¹ã¬ããã«å¯¾ãã¦ãå®åæã§è¿ä¿¡ãã
- è¿ä¿¡æ¸ã¿ã®ã¡ã¼ã«ã«ã¯ã©ãã«ãã¤ãã¦ãäºéè¿ä¿¡ãé²ã
- Googleã®ããªã¬ã¼æ©è½ã§ã5åããã«ãã®å¦çãèªåå®è¡ãã
ãã®4ã¹ãããããåãã°ãããªããå¯ã¦ããããå¤å¤ä¸ã ããããGmailãåæã«ä¸æ¬¡è¿ä¿¡ãã¦ãããç¶æ ã«ãªãã¾ããç§ã¯æåãã¡ã¼ã«ãµã¼ãã¼å´ã§è¨å®ããªãã¨ãã¡ãªã®ããªï¼ãã¨æãè¾¼ãã§ããã®ã§ãããGASãªãGoogleã¢ã«ã¦ã³ãä¸ã§å®çµããã®ã§ãµã¼ãã¼ãè²»ç¨ãä¸è¦ã§ãã
GASã®æºåï¼åãã¦ã®æ¹åãï¼
GASã使ãã®ãåãã¦ãªããã¾ãã¯ä»¥ä¸ã®æé ã§ãããã¸ã§ã¯ãããä½ãã¾ãã
- script.google.com ã«ã¢ã¯ã»ã¹
- å·¦ä¸ã®ãæ°ããããã¸ã§ã¯ãããã¯ãªãã¯
- ãã¡ã¤ã«åã
GmailAutoReplyãªã©ã«å¤æ´ Code.gsã®ã¨ãã£ã¿ã«ãå¾è¿°ããã³ã¼ããè²¼ãä»ãã
ããã ãã§GASã®éçºç°å¢ã¯æ´ãã¾ããPC1å°ã¨Googleã¢ã«ã¦ã³ãããããã°ãä»ã«ã¯æ¬å½ã«ä½ãããã¾ãããããã GAS ã®ãããããã¨ããã§ãã
æçã³ã¼ãï¼10è¡ã§åãGmailèªåè¿ä¿¡ã¬ã·ã
ãããªãçµè«ã®ã³ã¼ãã§ãã以ä¸ãGASã¨ãã£ã¿ã«ã³ãããã¦ãLABEL_NAME 㨠REPLY_BODY ãæ¸ãæããã°åãã¾ãã
function autoReply() {
const LABEL_NAME = 'èªåè¿ä¿¡æ¸ã¿';
const REPLY_BODY = 'ãåãåãããããã¨ããããã¾ããæ
å½è
ããæ¹ãã¦ãè¿ä¿¡ãããã¾ãã';
const label = GmailApp.getUserLabelByName(LABEL_NAME) || GmailApp.createLabel(LABEL_NAME);
const threads = GmailApp.search('is:unread -label:' + LABEL_NAME, 0, 20);
threads.forEach(function(thread) {
thread.getMessages().pop().reply(REPLY_BODY);
thread.addLabel(label);
thread.markRead();
});
}
ã³ã¼ãã®æå³ãç°¡åã«è§£èª¬ãã¾ãã
GmailApp.search()ã§ãæªèªããã¤ãã¾ã èªåè¿ä¿¡æ¸ã¿ã©ãã«ãã¤ãã¦ããªããã¹ã¬ãããæ¤ç´¢thread.reply()ã§ãã®ã¹ã¬ããã«è¿ä¿¡addLabel()ã§èªåè¿ä¿¡æ¸ã¿ã©ãã«ãã¤ãã¦ã次å以é対象å¤ã«ããmarkRead()ã§æ¢èªã«ããï¼ã好ã¿ã§åé¤å¯ï¼
ååå®è¡æãGASãããã®ã¹ã¯ãªãããããªãã®Gmailã«ã¢ã¯ã»ã¹ãã許å¯ãæ±ãã¦ãã¾ããã¨ç¢ºèªãã¦ãã¾ããGoogleã¢ã«ã¦ã³ãã§ãã°ã¤ã³ããå 容ã確èªãã¦è¨±å¯ãã¦ãã ãããããã¯ç¬¬ä¸è ã«ã¹ã¯ãªããã触ãããªããèªåã® GAS ããã¸ã§ã¯ãå ã ãã®è©±ãªã®ã§å®å¿ãã¦é²ãããã¾ãã
æ¼ãããã¹ã3ã¤ã®ãã¤ã³ã
ãã ã³ãããã¦çµããããªãããã«ãå®éç¨ã§çµ¶å¯¾ã«æ¼ãããã3ã¤ã®ãã¤ã³ããç´¹ä»ãã¾ãããããç¥ããªãã¨ãããï¼å ¨å¡ã«åãè¿ä¿¡ãé£ã³ã¾ãã£ãâ¦ãã¨ããäºæ ã«ãªãããã¾ããã
ãã¤ã³ã1ï¼æ¤ç´¢æ¡ä»¶ãå³ããã«ãã
GmailApp.search() ã®æ¤ç´¢ã¯ã¨ãªã¯ãæ®æ®µã®Gmailæ¤ç´¢çªã§ä½¿ãè¨æ³ã¨åãã§ããæåã¯åºãã«æ¸ãã¦ãã¾ããã¡ã§ãããå¿ ãç¯å²ãçµãã¾ãããã
const query = 'is:unread -label:èªåè¿ä¿¡æ¸ã¿ label:åãåãã newer_than:1d';
const threads = GmailApp.search(query, 0, 20);
ããããã¯ãã©ãã«ãã¨ãnewer_thanããçµã¿åãããæ¹æ³ãç§ã¯åãåãããã©ã¼ã çµç±ã®ã¡ã¼ã«ã«èªåã§ã©ãã«ãä»ãããGmailå´ã®ãã£ã«ã¿ãè¨å®ãããã®ã©ãã«ã ãã対象ã«ãã¦ãã¾ããããããã°å®¶æããã®ã¡ã¼ã«ã«åæã«è¿ä¿¡ãé£ã¶ãããªæ²åã¯èµ·ãã¾ããã
ãã¤ã³ã2ï¼éä¿¡å ãã¡ã¤ã³ããã§ãã¯ãã
ç¹ã«ã·ã§ããéå¶ã®å ´åã忥è ããã®å¶æ¥ã¡ã¼ã«ããè¿·æã¡ã¼ã«ç´ãã®ãã®ã«ãèªåè¿ä¿¡ãã¦ãã¾ãã¨è¿·æã«ãªãã¾ãããã¡ã¤ã³ã§ãã£ã«ã¿ãããã¾ãããã
const from = thread.getMessages()[0].getFrom();
if (from.indexOf('@noreply') !== -1) return;
getFrom() ã§éä¿¡å
ãåããnoreply ãªã©ãå
¥ã£ã¦ããã¢ãã¬ã¹ã«ã¯ããããè¿ä¿¡ããªããã¨ãã£ãå¶å¾¡ãå
¥ãã¾ããå°å³ã§ãããããã§è¿ä¿¡äºæ
ãã»ã¼ã¼ãã«ãªãã¾ããã
ãã¤ã³ã3ï¼ããªã¬ã¼ã5ã10åããã«è¨å®ãã
ã³ã¼ããæ¸ãããããã¨ã¯èªåå®è¡ã®è¨å®ã§ããGASã¨ãã£ã¿å·¦å´ã®æè¨ãã¼ã¯ï¼ããªã¬ã¼ï¼ããæ°è¦ããªã¬ã¼ã追å ãã以ä¸ã®ããã«è¨å®ãã¾ãã
- å®è¡ãã颿°ï¼
autoReply - ã¤ãã³ãã®ã½ã¼ã¹ï¼æé主å°å
- æéãã¼ã¹ã®ããªã¬ã¼ã®ã¿ã¤ãï¼åãã¼ã¹ã®ã¿ã¤ãã¼
- æéééï¼5åãã
ç§ã¯æå1åããã«è¨å®ãã¦ãã¾ããGoogleã®Gmailéä¿¡ä¸éã«ä¸ç¬ã§ã¶ã¤ããã¾ããã5ã10åééã§ååã§ããã客ãã¾ä½é¨ã¨ãã¦ãã5å以å ã«èªåè¿ä¿¡ãå±ãããªãããããã¹ãã¼ãæããã£ã¦å¥½å°è±¡ã«ãªãã¾ãã
å¿ç¨ï¼å¶æ¥æéå¤ã ãè¿ä¿¡ããã³ãã¬ãã·ã¼ã管ç
æ £ãã¦ãããã䏿©é²ãã éç¨ã«ææ¦ãã¦ã¿ã¾ããããç§ããã¾å®éã«åãã¦ããè¨å®ã¯ãããªæãã§ãã
å¶æ¥æéå¤ã ãèªåè¿ä¿¡ãã
å¤å¤ã®æ¥ãæ©æãªã©ã¯ãâ¯æä»¥éã«è¿ä¿¡ãã¾ããã¨æ¡å ããã»ãã親åã§ãã
const hour = new Date().getHours();
if (hour >= 9 && hour < 18) return;
ãã®3è¡ã autoReply() ã®å
é ã«å
¥ããã ãã§ã9æã18æã¯èªåè¿ä¿¡ããããã以å¤ã®æé帯ã®ã¿åãããã«ãªãã¾ããæ¼éã¯èªåã§æåè¿ä¿¡ãå¤éã¯GASã«ä»»ããéç¨ã§ãã
è¿ä¿¡ãã³ãã¬ãã¹ãã¬ããã·ã¼ãã§ç®¡ç
ã³ã¼ãã«ç´æ¥è¿ä¿¡æãæ¸ãã¨ãæé¢ãå¤ãããã³ã«GASã触ãå¿ è¦ããã£ã¦é¢åã§ããç§ã¯ã¹ãã¬ããã·ã¼ãã® A1 ã»ã«ã«æ¬æãæ¸ãã¦ãããããããèªã¿è¾¼ãããã«ãã¾ããã
const sheet = SpreadsheetApp.openById('ã¹ãã¬ããã·ã¼ãã®ID').getSheetByName('ãã³ãã¬');
const REPLY_BODY = sheet.getRange('A1').getValue();
ãããã¦ããã°ãã¹ããã®ã¹ãã¬ããã·ã¼ãã¢ããªããæè¨ãä¿®æ£ããã ãã§OKã夫ã«ãæç« ãããããªãï¼ãã¨ãã§ãã¯ãã¦ãããéç¨ããã·ã¼ããå ±æããã ãã§æ¸ãã®ã§æ¥½ã¡ãã§ãã
ã¾ã¨ãï¼5åã§å§ãã¦ãéç¨ã§ç£¨ãã¦ãã
GASã§ã®Gmailèªåè¿ä¿¡ã¯ãæ¬å½ã«ã³ãã10è¡ã§åãã¾ããä»åã®ã¬ã·ããããä¸åº¦ã¾ã¨ããã¨ã
- script.google.com ã§æ°è¦ããã¸ã§ã¯ããä½ã
- 10è¡ã®ã³ã¼ããã³ãããã¦ãã©ãã«åã¨æ¬æãæ¸ãæãã
- æé主å°åããªã¬ã¼ã5ã10åããã«ã»ãã
- æ £ãã¦ããããå¶æ¥æéãã£ã«ã¿ããã³ãã¬ã®ã·ã¼ã管çã§éç¨ãæ´ç·´ããã
ãã®æµãã§ãç§ã¯åãåããã®ä¸æ¬¡è¿ä¿¡ã«ããã¦ããæéããã»ã¼ã¼ãã«ã§ãã¾ãããå¤å¤æãã®ãã¡ã¼ã«æºã¾ã£ã¦ããã¬ãã·ã£ã¼ãããè§£æ¾ãããã®ããå人çã«ã¯ä¸çªãããã广ã§ãã
ãGAS Gmail èªåè¿ä¿¡ãã§ã¤ã¾ããã¦ããæ¹ã®ãæåã®ä¸æ©ã«ãªãã°å¬ããã§ãããã¾ããããªãã£ãç®æãããã°ãæ°è»½ã«ã³ã¡ã³ãã§æãã¦ãã ãããã
ãã®è¨äºãæ¸ãã人ï¼å
ç¾å½¹ãã¼ã¹Ã坿¥Webã¨ã³ã¸ãã¢ãå¤å¤ã®åéã«GASãå¦ã³ãGmailã»ã¹ãã¬ããã·ã¼ãã»ã«ã¬ã³ãã¼ã®èªååã¬ã·ããå ¬éä¸ãããã°ã©ãã³ã°æªçµé¨ããç¬å¦ã§å®åã¬ãã«ã¾ã§å°éããçµé¨ããã¼ã¹ã«ããã³ããã§åãããã¢ããã¼ã«æ å ±çºä¿¡ãã¦ãã¾ãã