
ã解説ãPythonã§Gmailåä¿¡&èªååããŒã«
ããã«ã¡ã¯Rcatã§ãã
ååæçš¿ãã以äžã®Gmailãåä¿¡ããŠãPythonã§å¥œãã«æçããããŒã«ã®å
éšè§£èª¬ãè¡ããŸã!
ã¯ããã«
å©çšèŠçŽ
æ å ±ãäœåã®æŽ»çšæã¯äºåã«å©çšèŠçŽãã確èªãã ããã
ã³ã¡ã³ãã«ã€ããŠ
å©çšèŠçŽã®ã¬ã€ãã©ã€ã³ã確èªã®äžã³ã¡ã³ãããŠãã ããã
åã£ãŠããªãã³ã¡ã³ãã¯åé€ããŸãã
æ§æ
æ¬ããŒã«ã¯æ¬¡ã®ãããªæ§æã§äœæãããŠããŸãã

ã¡ã€ã³ã®ã¹ã¯ãªããã¯gmail.pyã§ãã
ä»ã®ã¹ã¯ãªããããåç
§ãããããã¡ãŒã«ãä¿æããã¯ã©ã¹ã«é¢ããŠã¯å¥ã«åããŠãããããemailmessage.pyãšãªããŸãã
ã¡ãŒã«ãåä¿¡ããéã®èªååŠçã¯modulesãã©ã«ããŒã®äžã«ã¢ãã€ã³ã®ãããªåœ¢ã§ãã³ãã¬ãŒããè€è£œããŠäœæããŸãã
ããããããšã§ã«ã¹ã¿ãã€ãºæ§ãåäžãããŠããŸãã
ãŸããæ¬äœã¯èªåç°å¢æ§ç¯ã«å¯Ÿå¿ããŠãããWindowsãšLinuxã§ããããèµ·åã¹ã¯ãªãããå®è¡ããããšã§ãç°å¢æ§ç¯ããèµ·åãŸã§èªåã§è¡ãããšãã§ããŸãã
ãªããä»åã®ããŒã«ã¯AIé§åéçºãçšããŠããã倧æ ã¯çæAIã䜿ã£ãŠå©ãå°ãäœã£ãåŸãæ£åžžã«åããªãéšåã现ãããšãããä¿®æ£ããŠãããšããããæ¹ã§å¶äœããŠããŸãã
ã¹ã¯ãªããã¡ã€ã³
ã§ã¯ãã¡ã€ã³ã®ã¹ã¯ãªããã®è§£èª¬ãè¡ããŸãã
å®è¡éšãšã¡ã€ã³ã«ãŒã
ãã¡ããã¹ã¯ãªãããèµ·åããæã«å®è¡ãããéšåãšãªããŸãã
ã°ããŒãã«é åã§èšå®ãã¡ã€ã«ãèªã¿èŸŒãã åŸãèšå®ããªããã°çµäºãšãã圢ã«ããŠããŸãã
èšå®ãèªã¿èŸŒããå Žåã¯ã¢ãã€ã³ãšãã圢ã§ããã®åŸç޹ä»ããã«ã¹ã¿ã åŠçã®ã¹ã¯ãªãããèªã¿èŸŒãã åŸãã¡ã€ã³ã«ãŒãã«å
¥ããŸãã

ã¡ã€ã³ã«ãŒãã®äžã§ã¯ç¡éã«ãŒããè¡ãã宿çã«ãã§ãã¯ãè¡ããŸãã
ã¡ãŒã«ã®åä¿¡ãšããã䜿ã£ãåŠçã«é¢ããŠã¯å¥ã®é¢æ°ã«ãŸãšããããŠããããã®äžã§ã¯ããã ã«ãŒããšæçµååŸæ¥æã®æŽæ°ãè¡ã£ãŠããŸãã
ã¡ãŒã«ã®åä¿¡åŠç
ã¡ãŒã«ã®åä¿¡éšåãæãé·ã颿°ãšãªããŸãããã¡ãã¯AIã䜿ã£ãŠçæãããã®ãåãããªããã宿 ã«åããªãéšåãç§ãä¿®æ£ãããšãã£ã圢ã§äœæããéšåãšãªããŸãã
ä»åã¯æšæºã©ã€ãã©ãªã ãã§ã¡ãŒã«ã®åä¿¡ãè¡ãããã¡ãŒã«ã®éåä¿¡ãããã³ã«ã§ããIMAPã«åã£ãéä¿¡ãè¡ãããªãäœã¬ãã«ãªåŠçãšãªã£ãŠããŸãã

ãã®èŸºã®åŠçã«ã€ããŠã¯ããã®èŸºããåèã«ãªããŸãã
https://atmarkit.itmedia.co.jp/fnetwork/rensai/netpro09/imap4-fetch.html
https://atmarkit.itmedia.co.jp/ait/articles/0204/10/news001.html
ãã®é¢æ°ã¯æ°ããéãããŠããã¡ãŒã«ãåä¿¡ãããã®åŸç޹ä»ãããEã¡ãŒã«ãªããžã§ã¯ãã«å
å®¹ãæ ŒçŽããŸãã
ã¡ãŒã«ã¯è€æ°éãããŠããå¯èœæ§ãããã®ã§ãEã¡ãŒã«ãªããžã§ã¯ãã®ãªã¹ãããªã¿ãŒã³ããŸãã
ãŸãæåã«ã¡ãŒã«ã®æ€çŽ¢ã§ãã
ããã§ã¯æ¥ä»æå®ã§ãã以éã®ã¡ãŒã«ããæ€çŽ¢ã§ããªãããã倧ãŸããªæ€çŽ¢ãè¡ããŸãã
äŸãã°5åããã«ãã§ãã¯ããŠãããšããŠãã5ååã®æå»ããã§ã¯ãªã仿¥ã®ã¡ãŒã«å
šãŠããã§ãã¯ããããšã«ãªããŸãã

仿¥éãããŠããã¡ãŒã«ã®äžèЧïŒIDïŒãååŸãããšãã®å
ã®åŠçã«é²ã¿ãŸãã
ãªãã5åãããªã©ããªãçãééã§ãã§ãã¯ãç¹°ãè¿ããããããã®æç¹ã§ååååŸããã¡ãŒã«ã®ä»¶æ°ãä¿æããŠãããŸãã
ããããããšã§ãä»¶æ°ãåããªãæ°ããã¡ãŒã«ããªããšãã倿ãè¡ããäœèšãªåŠçãããã«æžã¿ãŸãã
åã¡ãŒã«ã®è©³çްã®åä¿¡ãšãã©ã°
ã¡ãŒã«ã®äžèЧãåä¿¡ããããæ¬¡ã«ã¡ãŒã«ã®è©³çްãååŸããŸãã
ããã§ã¯åã¡ãŒã«ã®IDã䜿ã£ãŠã«ãŒããåãããšã§å€ãé ãã1ã€1ã€ã¡ãŒã«ããã§ãã¯ããŠãããŸãã
ãŸãæåã«ãã©ã°ã®ç¢ºèªã§ãã
ããã¯æ¢èªãªã®ãæªèªãªã®ãã®ç¢ºèªã«ãªããŸãããã®åŸè¡ãæ¬æã®åä¿¡ãè¡ããšã匷å¶çã«éå°æžã¿ã«ãªã£ãŠããŸããŸãã
ã¹ããŒããã©ã³ã§ããã§ãã¯ããŠããå ŽåãèªååŠçã§ã¡ãŒã«ãåæã«æ¢èªã«ãªããšã仿¥ã®æ°ããã¡ãŒã«ãäœãªã®ãããããªããªã£ãŠããŸããŸããããããããªããããæªèªã ã£ãå Žåã¯åä¿¡åŸã«æªèªã«æ»ããšããåŠçãè¡ãããã«ãã©ã°ãååŸããŸãã
ãªããæ¬æ¥ã§ããã°ã¡ãŒã«ãéå°ããã«åä¿¡ãããšããæ¹æ³(RFC822.PEEK)ãããã¯ããªãã§ããããã®ãªã¯ãšã¹ããéããšãšã©ãŒã«ãªã£ãŠããŸã£ãã®ã§ãä»åã¯ãã®ãããªå¯Ÿå¿ããšã£ãŠããŸãã

æ¬¡ã«æå»ã®ååŸã§ãã
ãã®ã¡ãŒã«ã®åä¿¡æå»ãååŸããŸãããã®æç¹ã§ååãã§ãã¯ããã¡ãŒã«ãããå€ãã¡ãŒã«ã§ããã°ãããã¯åŠçããªããŠãããšããããšã§ããã®å
ã®åŠçãã¹ãããããŸãã

ã¡ãªã¿ã«ãã©ã°ãšæå»ã®ååŸã¯AIãäœã£ãŠãããã³ãŒããšå®éã®ã¡ãŒã«ãµãŒããŒã®å¿çããã£ãŠãªãã£ãã®ã§æåã¯å
šç¶åãããæ©ãã ãšããã§ããããŸãã
äœããã¡ãŒã«ãµãŒããŒããçŽæ¥ã¡ãŒã«ãååŸãããªããŠä»ååããŠãããŸãããããâŠpdbã§äžèº«èŠãªããäœåºŠãåããŠä¿®æ£ããŸãããšãã
ã¡ãŒã«ã®æ¬æãä»¶åã®ååŸãããŠæªèªã«æ»ã
åŠç察象ã®ã¡ãŒã«ã§ãã£ãå Žåãããããå
ã®åŠçãå®è¡ãããŸãã
ãŸããæåã«ã¡ãŒã«æ¬äœãååŸããŸããååŸããã¡ãŒã«ã¯ãã€ãåã®ãããªã®ã§ãã©ã€ãã©ãªã䜿ã£ãŠãã³ãŒãããŠããŸãããã®èŸºãã¯å®å
šã«ãä»»ãã§ãã

å·®åºäººã®ãã³ãŒã
ããã¯ã¡ãã£ãšãã€ã³ãã ã£ããããŸãã
æè¿ã¯ã¢ãã¬ã¹ã§ã¯ãªãååã§ã¡ãŒã«ãå±ããŸããã?ããã¯äž¡æ¹ã®ããŒã¿ãå«ãŸããŠããããã ããã§ãããçæ¹ãããªãå Žåãããã®ã§ã¡ãããšåŠçããªããšå·®åºäººãäœã«ãªããåãããªãã
ããã§ã¯ã©ã€ãã©ãªã®åã§ãããã«ãã³ãŒãããŠåé¢ããŠããŸãã

ã¡ãŒã«ã®ãã³ãŒã
æåŸã«æ¬äœã®ãã³ãŒãã§ãã
ç¹ã«ãã«ãããŒãã®å Žåã¯ãæ¬æãããã¹ããHTMLããæ·»ä»ã¯ããã®ããªã©ãšãã£ãæ§ã
ãªåŠçãããŠããŸãã
ãªã®ã§äžå¿çš®é¡ã®å€å¥ãšæ·»ä»ã®ãã€ããªãååŸããããšãã§ããŸãã

åŠçãçµãã£ããæåŸã«ãªãªãžãã«ã®ã¡ãŒã«ãªããžã§ã¯ãã«å ¥ããŠçµäº!
ã¡ãŒã«ãªããžã§ã¯ã
ä»ååä¿¡ããã¡ãŒã«ã¯æ¥µåç°¡åã«æ±ããããã«å°çšã®ãªããžã§ã¯ãã«æ ŒçŽããŠããŸãã
ãã¡ãã®ã¯ã©ã¹ããã®æ ŒçŽå ãšãªããŸãã

ä¿ææ å ±
ãã®ã¯ã©ã¹ã¯ä»¥äžã®æ å ±ãä¿æããŸã
UID
å·®åºäººã¢ãã¬ã¹
å·®åºäººå(ããã°)
ä»¶å
æ¬æ
æ¬æã¿ã€ã
æå»
æ·»ä»ãã¡ã€ã«
æ©èœ
Save
ä¿æããŠããã¡ãŒã«ãããã¹ã圢åŒã§ä¿åããæ©èœã§ãã
æå»ãšä»¶åããã¡ã€ã«åãšãªãä¿åãããŸããäžå¿ãLinuxãšWindowsã§çŠåãšãªãæåã¯çœ®ãæããåŠçãå
¥ã£ãŠããŸãã
ã¡ãªã¿ã«åŒ·å¶çã«äžèšGet_Plain_Bodyãšåçã®ç¶æ
ã§ä¿åãããŸãã
Get_Plain_Body
HTMLã¿ã°ã®é€å»ãè¡ãªã£ãããã¹ããè¿ããŸãã
HTML圢åŒã®ã¡ãŒã«ãäŸãã°noteã®ã¡ãŒã«ãšãã«é¢ããŠã¯ãHTMLã¿ã°ãã¡ã¿ããŒã¿ã9å²ä»¥äžãå ããŠãããããããã¹ããšããŠåç
§ããå Žåãå
šãæã£ãŠæå³ãããããªããã®ã«ãªã£ãŠããŸãããã®ããåçŽãªããã¹ããšããŠæ±ããããããã«ãHTMLã¿ã°é¢é£ã¯å
šãŠåé€ããŸãã
åä¿¡ããã¡ãŒã«ã®èªååŠç
次ã«ã¡ãŒã«ãèªååŠçã«æã£ãŠããéšåãèŠãŠãããŸãããã
ãã®é¢æ°ã¯ã¡ã€ã³ã«ãŒãã§å®è¡ãããæ°èŠã¡ãŒã«ã®åãåããããåŒã³åºããããã®ã§ãå
ã»ã©ã®ã¡ãŒã«ãªããžã§ã¯ãã®ãªã¹ããåãåããŸãã

ããã§ã®åŠçã¯å€ããªãããŸãåä¿¡ããã¡ãŒã«ã®ä¿åãè¡ãããã®åŸãåã¢ãã€ã³ã«å¯ŸããŠã¡ãŒã«ãæž¡ããå®è¡ããæäœãããã°ã¢ãã€ã³ãåŠçãè¡ããšããæµãã§ãã
èªååŠççšã¢ãã€ã³
æ¬äœã§ã¯ãèªååŠçã®éšåã¯çŽæ¥ã¡ã€ã³ã®ããã°ã©ã ã«è¿œèšããã®ã§ã¯ãªããå¥ã®ãã¡ã€ã«ã䜿ã£ãŠç®¡çããããã«ããŠããŸãã

modulesãã©ã«ãã®äžã«ãã³ãã¬ãŒããæåã«å ¥ã£ãŠããã®ã§ããã¡ããæžãæããããšã§èªç±ãªåŠçãå®çŸããŠãããŸãã
èªã¿èŸŒã¿éšå
ä»åã¯importlibãçšããåçã€ã³ããŒããå©çšããããšã§ãèªååŠçã®ãã¡ã€ã«ããã©ã«ãã«ããå ¥ããŠããã°èªã¿èŸŒãããšããç¶æ ã«ããŠããŸãã

æ¹æ³ã¯åçŽã§ã決ãŸã£ãååã®ãã©ã«ãã®äžãããã¡ã€ã«ãæ€çŽ¢ããŠããã®ååã§åçã€ã³ããŒããããã ãã
ãããŠã€ã³ããŒãåŸã¯æ±ºãŸã£ãååã®ã¯ã©ã¹ãã€ã³ã¹ã¿ã³ã¹ããŠè¿ããšããæµãããã®ã¯ã©ã¹ãããèªååŠççšã¯ã©ã¹ãšãªããŸãã
ã¡ãŒã«ã®ãªããžã§ã¯ããæž¡ããããšã³ããªãŒãã€ã³ããæ±ºãŸã£ãŠããã®ã§ãããããã°å®ã£ãŠããã°ããã以å€ã¯èªç±ã«æ¹å€ããããšãã§ããŸãã
åŒã³åºãèšå®ãšãã§ãã¯
ãŸããæåã«ã¢ãã€ã³ã®æ¡ä»¶ãã§ãã¯ãšèšå®ãèŠãŠãããŸãããã
ã¢ãã€ã³ã®äžã§æžãæããã¹ãã¯ãŸãã¯ã€ã³ã¹ã¿ã³ã¹ã§ãã
ããªã¬ãŒãšãªã£ãŠããç®æã«å¿
èŠãªæ¡ä»¶ãå
¥åããŠãããŸãã
ORæ¡ä»¶ã«å¯Ÿå¿ã§ããããã«ãªã¹ããšããŠããŸããæ¡ä»¶ããªãéšåã¯ç©ºçœã«ããŠããã°ç¡èŠãããŸãã
ãŸããåŠçã忢ããéã«ãã¡ãã¡ãã¡ã€ã«ãåé€ããããç§»åãããããã®ã倧å€ã ãšæãã®ã§ããã©ã°ãèšããŠããŸãã
ãŸããALL = Trueã«ããå Žåã¯ãã¹ãŠã®ã¡ãŒã«ã«å¯ŸããŠåŠçãè¡ããŸãã

èªååŠçãåŒã³åºããããšããŸãæåã«èªåã察象ãªã®ããšãããã§ãã¯ãå
¥ããŸãã
åŠçã¯éåžžã«ã·ã³ãã«ã§ãããŸããæåã«éä¿¡å
æ¡ä»¶ã確èªããããªã¬ãŒèšå®ãããã°ãããå«ãŸãããã©ããã®ãã§ãã¯ãããŸãã
ãªã¹ãã䜿ã£ãŠããé¢ä¿äžãã«ãŒãã«å
¥ã£ãæç¹ã§å
šãŠã«ãŒããåããã=æ¡ä»¶äžäžèŽãªã®ã§ãforã®elseç¯ã«å
¥ã£ãæç¹ã§å¯Ÿè±¡å€ã§ãããšå€å®ããããšãã§ãããªã¿ãŒã³ãããããªæ§é ã§ããåãããšãä»¶åããããŠæ¬æã®é ã§è¡ããŸãã

ç¥èãããã°ãã®èŸºãã®ããžãã¯ãç·šéããŠããã£ãšè€éãªå€å®åŠçã«ããã®ãããã§ããããã¡ã€ã³ã®ããã°ã©ã ã®æ¹ã§ã¯äžåå€å®åŠçãæã£ãŠããªãã®ã§ããã®èŸºããèªç±ã«ã«ã¹ã¿ã ã§ããŸãã
ãã®åŠçã®çµæã察象ã®ã¡ãŒã«ã§ãããšå€å®ãããå Žåã¯ãã«ã¹ã¿ã ã¢ã¯ã·ã§ã³ãåŒã³åºãããŸãã
ã«ã¹ã¿ã åŠçã®èšè¿°
ãã£ãšèªååŠçã®èšè¿°ã§ãã
ãã¡ãã®ã«ã¹ã¿ã ã¢ã¯ã·ã§ã³ãšããéšåã«å¥œããªåŠçãæžããŠãããŸããåŒãæ°ã§æž¡ãããŠããã¡ãŒã«ããªããžã§ã¯ãã䜿ããä»¶åãæ¬æãªã©ãæååãšããŠåç
§ããããšãã§ããŸãã

äŸãã°ãä»åã®ãã³ãã¬ãŒãã®äžã«ã¯Discordã®WEBHookã«ã¡ãã»ãŒãžã転éããããã®é¢æ°ãåã蟌ãŸããŠããŸãã

ãã¡ãã®é¢æ°ã§ã¯Discordã®ã¡ãã»ãŒãžäžéãèæ
®ãã2000æåã«åãŸããããªåœ¢ã§ä»¶åãšæ¬æãæœåºããŠéä¿¡ãšãã圢ã«ããŠããŸãã
ãã®ããã«å¥œããªåŠçãçŽæ¥èšè¿°ãããã颿°ãšããŠå¢ããããããŠèªååŠçå®çŸããŸãã
ã¡ãªã¿ã«LINEã®BOTçããããŸãã

WEB HOOKã§ãã¡ãã»ãŒãžãéä¿¡ããŠãããªããä»ã«ãã¡ãŒã«ãéä¿¡ããããšãã§ããŸããäŸãã°ãçæAIã®APIãå©ããŠäœãã®å€å®ãèªåã§äžããŠéç¥ããããªããŠããšãã§ãããããããŸãããã
ãã ããã©ã€ããŒããªå
容ãªã®ã§ããããšããŠããšããžAIã®æ¹ãããã§ãããã
ãŸãšã
ãããã§ããã§ããããïŒ
ä»åã¯Pythonã䜿ã£ãGmailåä¿¡ã®ãœãŒã¹ã³ãŒã解説ãè¡ããŸããã
æåã¯ã©ã€ãã©ãªã§ç°¡åã«åä¿¡ãããããªïŒãªããŠèããŠãããã§ããããŸããã®IMAPã³ãã³ããçŽã«å©ããšããããšã«ãªã£ãŠããŸããŸããããŸãããã¯ããã§å匷ã«ãªã£ããããããã§ããã©ã
ä»ãŸã§ã¯GASã䜿ã£ãŠGmailãåä¿¡èªååãšãã£ãããšãããŠããŸããããããã ãšã©ãããŠãåŠçã«æéãããã£ãããéåžžã«è€éåããŠãããããã®ã§ããã¥ããã£ããã§ããããããŒã«ã«ã§åŠçã§ããããã«ãªããèªç±åºŠãæ Œæ®µã«åäžããŸããã
äœãé¢çœãçšéãããã°æ¯éè¡ãããŠã¿ãŠãã ããã
ããã§ã¯ãŸããäŒãããŸãããã