
ç§ãã¡ã®ããã°ã§ã¯ãæã ã¯ãäœæã«é¢ããå€ãã®æžã蟌ã¿ãé»åã¡ãŒã«ãéµéãããŠé»åã¡ãŒã«ã䜿çšããŸãã ä»æ¥ã®äžçã§ã¯ã人ã ã¯å€ãã®æçŽãåãåããäžéšã®äººã¯ããã€ãã®ã¡ãŒã«ããã¯ã¹ããæã£ãŠããŸãã ãã®ãã¹ãŠã圌ãã®ç®¡çã®ããã»ã¹ãè€éã«ããããã¯ç§ãã¡ãåé¡ã解決ããæ¹æ³ãæ¢ãããšãäœåãªããããŸãã å°ãåãŸã§ãç±³åœã®ãšã³ãžãã¢ããã¥ãŒã©ã«ãããã¯ãŒã¯ïŒ 1ã2 ïŒã䜿çšããŠæçŽãæŽçããæ¹æ³ã«ã€ããŠè©±ããŸããããä»æ¥ã¯ããŸããŸãªã¡ãŒã«ããã¯ã¹ãžã®æçŽã®éä¿¡ã®èªååã«ã€ããŠè©±ããŸãã
Mother Byrneãšãã£ã¿ãŒMichael Byrneã¯ãPythonã䜿çšããŠããŸããŸãªã¡ãŒã«ããã¯ã¹ã«ã¡ãŒã«ãéä¿¡ããæ¹æ³ã«é¢ããè³æãå·çããŠããŸãã ç§ãã¡ã¯ããªãã®æ³šæã«ãã®ããŒãã®é©å¿ããã翻蚳ãæ瀺ããŸãã
Byrneã¯ã5ã€ã®é»åã¡ãŒã«ããã¯ã¹ãæã£ãŠãããšæžããŠããŸãã 6çªç®ããããã©ããã§ãã°ããç»é²ããå¿ èŠããããšãã«äœ¿çšããŸãã ãžã£ãŒããªã¹ãã®äººçã®ããªãã®éšåã¯ãé»åã¡ãŒã«ããã°ãã衚瀺ããŠãœãŒãããåé€ãããæ°ã«å ¥ãã«è¿œå ããããã«ãããã®æçŽãèªãã§è¿ä¿¡ããããšããæããŸãã ããŒã³ã¯ãæ¯æ¥ã©ãã ãæéãããããèããããªããšèšããŸãã
ãžã£ãŒããªã¹ãã¯ãã¡ãŒã«ã管çããããã«ã¢ã·ã¹ã¿ã³ããéãå¿ èŠããããšåè«ããããŠæã£ãããšãèªããŠããŸãã ããã¯ããã®ãããªåŸæ¥å¡ãã©ã®ãããªæ瀺ãäžããã¹ãã§ãã£ããã«ã€ããŠã®èå¯ã«ã€ãªãããŸããïŒãæçŽã«ãã®ãããªãã®ãããã°ããããããŠãã ãããããã§ããã°ãäœãä»ã®ããšãããŠãã ãããã ããã¯ãã¬ã¿ãŒã«é©çšãããç¹å®ã®ã«ãŒã«ã»ããã«ãªããŸãã
ãããããã«ãŒã«ã»ããããšãããã¬ãŒãºãèŠããšããç§ã¯ããã«ã³ã³ãã¥ãŒã¿ãŒããã°ã©ã ãæžãããšãèããŸãã ç§ã®æçŽãã¹ã¯ããŒã«ããŠãã¢ã·ã¹ã¿ã³ããã³ã³ãã¥ãŒã¿ãŒã³ãŒãã«ç¿»èš³ããã®ãè³¢æã§ããããšãç解ããŠããŸãã
ãã ãããããè¡ãã«ã¯ãäœããã®æ¹æ³ã§é»åã¡ãŒã«ããã¯ã¹ãæçŽãèªãããã®ããã°ã©ã ã«æ¥ç¶ããå¿ èŠããããŸãã ããã¯éåžžã«ç°¡åã§ãã å®éãé»åã¡ãŒã«ã¯ãããã¯ãŒã¯éã§æ å ±ã転éããããã®äžé£ã®ããã¹ããããã³ã«ã§ãã ä»ã®ã€ã³ã¿ãŒãããå šè¬ãšåæ§ã«ã ãããã¯ã»ãã®å°æ°ã®ãããã³ã«å±€ã§ãã é»åã¡ãŒã«ã®æ§æ³ã¯ããã®ã€ã³ã¿ãŒãã§ãŒã¹ã®ã¿ãåæ ããŠããŸãã
ã¡ãŒã«ä»åãããã°ã©ã ãäœæããããªãå Žåã§ããããŒã¿ã»ãããšããŠã¡ãŒã«ã管çããããšã¯éåžžã«èå³æ·±ãã§ãã Bernã¯Pythonã䜿çšããŠåé¡ã解決ããããšã決å®ããŸããããã®èšèªã¯ããããããã®ãç°¡åãã€çŽæçã«äœæããã®ã«éåžžã«åªããŠãããéããã°ã©ããŒã«ãé©ããŠããããã§ãã 以äžã®æé ã¯ãã¢ã«ã¹ãŠã§ã€ã¬ãŒãã®ãPythonã§éå±ãªãã®ãèªååãããã®é»åã¡ãŒã«èªååã®ç« ã«äžéšåºã¥ããŠããŸãããžã£ãŒããªã¹ãã¯ãããã°ã©ãã³ã°ã®çŽ¹ä»ããã³èªååã楜ãã¿ãã人ã®ããã®ãªãã¡ã¬ã³ã¹ã¬ã€ããšããŠåŒ·ããå§ãããŸãã ãã®æ¬ã¯ã automatetheboringstuff.comã® Creative Commonsã©ã€ã»ã³ã¹ã®äžã§ç¡æã§å ¥æã§ããŸãã
ãŸããPythonãããŠã³ããŒãããå¿ èŠããããŸã ïŒãŸã ã€ã³ã¹ããŒã«ãããŠããªãå ŽåïŒã ã·ã³ãã«ãªããã¹ããšãã£ã¿ãå¿ èŠã§ãã Sublime Textã¯çŽ æŽãããã§ã- ããããããŠã³ããŒãã§ããŸãã STã¯ç¡æã§ã¯ãããŸãããããã¹ãã¢ãŒãã§ã¯ç¡éã«äœ¿çšã§ããŸãããè³Œå ¥ææ¡ã衚瀺ãããå ŽåããããŸãã ãããã圌ã¯åœŒã®ãéã®äŸ¡å€ããããŸãã
Pythonã¯2ã€ã®ã¢ãŒãã§äœ¿çšã§ããŸãã 1ã€ç®ã¯ã·ã§ã«ã§ããŠãŒã¶ãŒãPythonã³ãã³ããŸãã¯ã¹ãããããã³ã³ãœãŒã«ã«å ¥åãããšãããã«å®è¡ãããŸãïŒããšãã°ãprintïŒ "HelloãWorldïŒ"ïŒïŒã 2çªç®ã®ã¢ãŒãã¯Pythonã¹ã¯ãªããã§ãã åºæ¬çã«ãããã¯ã³ã³ãœãŒã«ããåæã«åŒã³åºãããšãã§ãã1ã€ä»¥äžã®ãã¡ã€ã«å ã®Pythonã³ãã³ãã®ã³ã¬ã¯ã·ã§ã³ã§ãã å®éããããã®ãã¡ã€ã«ã¯ããã°ã©ã ã§ããå°ãããŠã·ã³ãã«ãªå ŽåããããŸãïŒåŸã§èª¬æããŸãïŒãã倧ããªãããžã§ã¯ãã«æé·ããå¯èœæ§ããããŸãã
PythonãããŠã³ããŒãããã°ããã®å Žåãéå§ããåã«è¡ãå¿ èŠãããããšãããã«2ã€ãããŸãã æåã«ïŒPythonã§HelloãWorldïŒãæžãããã®çãã¬ã€ããèªãã§ãã ããã 2çªç®ïŒ5åãããŠPythonã¢ãžã¥ãŒã«ãã¥ãŒããªã¢ã«ãèªã¿ãŸãã Pythonæ¡åŒµæ©èœã®ã€ã³ã¹ããŒã«ãšã€ã³ããŒãã¯éââåžžã«ç°¡åã§ãã
ããã§ã¯å§ããŸãããã
0ïŒã¡ãŒã«ãåä¿¡ããããã®ãããã³ã«ïŒã¯ã€ãã¯ã¬ã€ã
é»åã¡ãŒã«ãæäœããããã®3ã€ã®äž»èŠãªãããã³ã«ããããŸãã ãããã®äžã§æãå€ããã®ã¯POPïŒPost Office ProtocolïŒãšåŒã°ããŸãã ãã®æ¬è³ªã¯ãïŒãã©ãŠã¶ã§ã¯ãªãïŒé»åã¡ãŒã«ãæäœããããã®ãœãããŠã§ã¢ããªã¢ãŒããµãŒããŒã«æ¥ç¶ãããŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ãŒã«æåãããŠã³ããŒãããã€ã³ã¿ãŒãããã«æ¥ç¶ããã«å©çšå¯èœã«ãªãããšã§ãã ããã¯ã圌ããã€ã³ã¿ãŒãããã«ãã£ãã«æ¥ç¶ããªãã£ãåœæã®è¯ãã¢ã€ãã¢ã§ããããããã¯ãŒã¯ã«ã¢ã¯ã»ã¹ã§ããªãã®ã¯æ®éã§ããããçŸåšã®ãšããã»ãšãã©ããã§ã¯ãããŸããã
é»åã¡ãŒã«ããã¯ã¹ã«ã¢ã¯ã»ã¹ããããã®çŸåšã®æšæºã¯ãIMAPïŒã€ã³ã¿ãŒãããã¡ãã»ãŒãžã¢ã¯ã»ã¹ãããã³ã«ïŒã§ãã çŸåšã®ã€ã³ã¿ãŒãããã®äœ¿çšæ¹æ³ãšã¯ããã«é«éã§äžè²«æ§ããããŸãã ããã«ãããè€æ°ã®ãŠãŒã¶ãŒãåãã¡ãŒã«ããã¯ã¹ã«æ¥ç¶ããã»ãã·ã§ã³å šäœãéããŠæ¥ç¶ãç¶æã§ããŸãã
Webãã©ãŠã¶ã¯ãè¿œå ã®ãããã³ã«ã§ããHTTPã䜿çšããŠã¡ãŒã«ã«ã¢ã¯ã»ã¹ããŸãããåãPOPãšIMAPã«åºã¥ããŠããŸãã
åºæ¬çã«ããµãŒããŒããã¡ãŒã«ãåä¿¡ããã«ã¯ãPOPïŒçŸåšã®ããŒãžã§ã³ã®POP3ïŒãšIMAPã䜿çšãããŸãã ããããæçŽãéãã«ã¯ãå¥ã®ãããã³ã«-SMTPïŒSimple Mail Transfer ProtocolïŒãå¿ èŠã§ãã ããã¯ãåä¿¡è ã«æçŽãéãã ãã§ã¯ã§ããªãããã§ãã åä¿¡è ãIMAPããã³POP3ã䜿çšããŠãã®ã¬ã¿ãŒãããŠã³ããŒããããµãŒããŒã«éä¿¡ããå¿ èŠããããŸãã
1ïŒPython SMTPã¢ãžã¥ãŒã«ã®æ¥ç¶
ãŸããé©åãªPythonã¢ãžã¥ãŒã«ãå¿ èŠã§ãã Smtplibã«ã¯Pythonãä»å±ããŠãããããè¿œå ã®ã¢ã¯ã·ã§ã³ãå®è¡ããå¿ èŠã¯ãããŸãããã³ã³ãœãŒã«ã«æ¬¡ã®è¡ãå ¥åããã ãã§ãã
import smtplib
ã¢ãžã¥ãŒã«ã«é¢ãããã«ããååŸããïŒããã³æ¥ç¶ãããŠããããšã確èªããïŒã«ã¯ããã«ãæ©èœã䜿çšã§ããŸãã
help(smtplib)
ãã®é¢æ°ã¯ã©ã®ã¢ãžã¥ãŒã«ã§ãæ©èœããããšã«æ³šæããŠãã ããã
2ïŒã¡ãŒã«ãµãŒããŒã«æ¥ç¶ãã
ãŸããsmtplibãªããžã§ã¯ããäœæããå¿ èŠããããŸããããã¯ãsmtplibã¢ãžã¥ãŒã«ããæ¥ç¶ãšããŸããŸãªããŒã«ãžã®ã¢ã¯ã»ã¹ãæäŸããäžçš®ã®ããŒã¿ã«ãšèããããšãã§ããŸãã
ãã®å Žåãå¿ èŠãªãªããžã§ã¯ããè¿ãé¢æ°ã¯2ã€ã®ãã©ã¡ãŒã¿ãŒãŸãã¯åŒæ°ãåããŸãã æåã®åŒæ°ã«ã¯ã以äžã«ç€ºãããã«ããã¡ã€ã³åãã€ãŸããsmtpãã§å§ãŸãã¡ãŒã«ã¢ãã¬ã¹ãå«ãŸããŸãã 2çªç®ã®åŒæ°ã¯ãé»åã¡ãŒã«ãµãŒããŒã§æ¥ç¶ããããŒãçªå·ã§ãã ã»ãšãã©ã®å ŽåãTLSæå·åæšæºã«åŸã£ãŠå€587ãåããŸãã ããŒã465ã䜿çšãããµãŒãã¹ã¯éåžžã«ãŸãã§ãã
ãã®ããã次ã®å 容ãèšè¿°ããå¿ èŠããããŸãã
smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObjå€æ°ã¯SMTPã¿ã€ãã®ãªããžã§ã¯ãã§ããããšãããããŸãã ããã確èªããã«ã¯ãã³ã³ãœãŒã«ã«å€æ°åãå ¥åãããšã³ããªã確èªããŸãã ã¡ã¢ãªã®å Žæãšã¿ã€ãã®ã¢ãã¬ã¹ãç»é¢ã«è¡šç€ºãããŸãïŒåã®ã³ãã³ããæ£ããå ¥åããå ŽåïŒã smtpObjå€æ°ã¯ãPythonã§æå¹ãªå€æ°åã§ããå Žåã«ã®ã¿ã奜ããªããã«åŒã³åºãããšãã§ããŸãã
3ïŒæå·å
æ¥ç¶ã確ç«ããããã«æ¬¡ã«è¡ãããšã¯ãã¡ãã»ãŒãžãæå·åããå¿ èŠãããããšãSMTPãªããžã§ã¯ãã«ãäŒãããããšã§ãã ãããè¡ãã«ã¯ãã³ã³ãœãŒã«ã«æ¬¡ã®è¡ãå ¥åããŠEnterãæŒããŸãã
smtpObj.starttls()
ç§ãã¡ãããããšã¯æ¬¡ã®ãšããã§ããGmailã«ãä»æ¥ã®ã€ã³ã¿ãŒãããéä¿¡ã®æšæºã§ããTransport Layer SecurityïŒTLSïŒãããã³ã«ã䜿çšããŠæ¥ç¶ãæå·åããããšãæãã§ããããšãäŒããŸããã TLSèªäœã¯æå·åã¢ã«ãŽãªãºã ã§ã¯ãªããæå·åã䜿çšããå¿ èŠãããããæ¥ç¶ã確ç«ããŠã¯ãªããªãããšãå ±åããŸãã
å¿çãšããŠã確èªãåãåãå¿ èŠããããŸãã
2.0.0 Ready to start TLS
éèŠãªãã€ã³ã-ãã®æé ãã¹ãããããŠããã«èªèšŒã«é²ããšããšã©ãŒã¡ãã»ãŒãžãç»é¢ã«è¡šç€ºãããŸãã ããã¯ãGmailãHTTPSãããã³ã«ã䜿çšããæå·åã䜿çšããŠããããã§ããã€ãŸããåãHTTPãè¿œå ã®TLSãããã³ã«ã§ã ã©ãã ããããŠããŸãã
5ïŒæ¿èª
ãã°ã€ã³ããã«ã¯ãæžãã ãã§ã
smtpObj.login('justkiddingboat@gmail.com','just123kidding')
ãã®æ®µéã§ã¯ãããã°é»åã¡ãŒã«ã®ãã¹ã¯ãŒãããããŸãã«ãªããéåžžã«å±éºã§ãã ããã¯ããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒäžã®åé¡ã§ã¯ãããŸããããPythonã¹ã¯ãªããã䜿çšããŠé»åã¡ãŒã«ã®äœæ¥ãå®éã«èªååããå Žåã¯ãã¹ã¯ãªããã³ãŒããã©ããã«å ¬éãããããããå«ããã¡ã€ã«ããµãŒãããŒãã£ã®ãµã€ãã«ã¢ããããŒãããåã«æ éã«æ€èšããå¿ èŠããããŸãã
5ïŒã¡ãã»ãŒãžãéä¿¡ãã
ã·ã§ã«ãåããç°å¢ã䜿çšããå©ç¹ã¯ãæ å ±ããªããŠãïŒããšãã°ãã¬ã¿ãŒã®éä¿¡ã®èª¬æãªã©ïŒãã€ã³ã¿ãŒããªã¿ãŒã«ããã«ã€ããŠå°ããããšãã§ããããšã§ãã ãããè¡ãã«ã¯ãåã«æ¬¡ã®ã³ãã³ããå ¥åããŸãã
help(smtpObj)
ããŒãžãå°ãã¹ã¯ããŒã«ãããšãç®çã®æ¹æ³ã衚瀺ãããŸãã

ã€ã³ã¿ãŒããªã¿ãŒã¯ãã®äœ¿çšäŸãåºåããŸãã

äžèšã®äŸã§ã¯ãæ¿èªã³ãã³ããæ¬ èœããŠããããšã«æ³šæããŠãã ããã ããã¯ãããã°ã©ã ããªã¢ãŒãã®é»åã¡ãŒã«ãµãŒããŒã§ã¯ãªãããŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããŠããããã§ãã ãã®å Žåã次ã®ããã«èšè¿°ããŸãã
smtpObj.sendmail("justkiddingboat@gmail.com","michael.byrne@vice.com","go to bed!")
ããŸããããŸããïŒ

6ïŒæ¥ç¶ãçµäºãã
æ¥ç¶ãå®äºããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
smtpObj.quit()
åœç¶ãã¡ãã»ãŒãžãéä¿¡ããããšã¯ãPythonã䜿çšããŠã¡ãŒã«ã§ã§ããããšã®ã»ãã®äžéšã§ãã ãã«ã³ã¯ãSveigartã®æ¬ãç¶ããŠãIMAPã䜿çšããŠé»åã¡ãŒã«ãæäœããæ¹æ³ãåŠã¶ããšããå§ãããŸãã
ç§ã¯ããªãã«èŠåããŸãïŒãŸã å°ããªã³ãŒãããããŸãã æãŸã§ã«ã¯ãPythonã¹ã¯ãªããã䜿ã£ãŠã¡ãŒã«ã§äœã§ãã§ããŸãã
ãããŠããã¡ããããã®ãããªèªååã¯ãé»åã¡ãŒã«ã®åŠçã容æã«ããããã ãã«äœ¿çšããäžèŠãªã¹ãã ã§äººã ãããµããããããã«äœ¿çšããã¹ãã§ã¯ãªãããšãç解ããå¿ èŠããããŸãã