SlideShare ist ein Scribd-Unternehmen logo
1 von 27
エキPy読書会 第二期 04
  Lightning Talk
      2012-03-12
     Takanori Suzuki
お前だれよ

• 鈴木たかのり
• Twitter: @takanory
• http://takanory.net/
• Pythonボルダリング部(#kabepy) 部長
私事(わたくしごと)
   ですが
2月末で退職しました
2月末に退職しました
2月末に退職しました
2月末に退職しました
• で、まぁここでなんで退職してなんでそこに
 入ったか何をするかとか書いたりするんです
 けど、それもつまらないので最終日に作成し
 た退職メールを送るまでの道のりについて書
 きます。

 • http://takanory.net/takalog/1284
というわけで
How To Send Farewell E-
        mails
  お別れメールの送り方
or
または
How To Became A
     SP*MMER
いかにしてス⃝マーになったか
手順

• 送信先アドレスの抽出
• メールアドレスの名寄せ
• 送受信数ランク分け、コメント追加
• メールを送信
送信先アドレスの抽出
送信先アドレスの抽出

     • Maildirから各メールを抜き出す
import mailbox

if __name__ == '__main__':
    maildir = mailbox.Maildir("~/Maildir", None, create=False)
    for folder in maildir.list_folders():
       if folder.find("ham") != -1: # 条件に合致するフォルダのみ
       folder = maildir.get_folder(folder)
       for key in folder.iterkeys():
          try:
             message = folder[key]
             # From, To, Cc のメールアドレスを取得
             fromaddr = message['From']
             tolist = message['To']
             cclist = message['Cc']
             # メール送信対象のアドレスかを解析する
          except:
送信先アドレスの抽出

      • メールアドレス部分のみを抜き出す
import mailbox
import rfc822

:
    message = folder[key]
    fromaddr = message['From']
    tolist = message['To']
    cclist = message['Cc']
    fromaddr = rfc822.parseaddr(fromaddr)[1].lower()
    tolist = [i[1].lower() for i in rfc822.AddressList(tolist)]
    cclist = [i[1].lower() for i in rfc822.AddressList(cclist)]
メールアドレスの名寄せ
メールアドレスの名寄せ

• 同じ会社に長くいたので、ドメインが
 変わっている
 (hoge.co.jp→hoge.com)

• sed で地道に変更
• “sort | uniq -c”で出現数の取得
ランク分け、コメント追加
ランク分け、コメント追加

• 自分が送信者/受信者、To/Cc
• メールアドレスごとにCSVファイルに
 まとめる

• 数が多い人で足切り
• 個別コメントを追加
メールを送信
import smtplib
               メールを送信
from email.mime.text import MIMEText
from email.Header import Header

if __name__ == '__main__':
    :
    with open("address-list.csv") as f:
       for line in f:
          (addr, message) = line.rstrip().split(",")
          # メールの本文を作成
        message = unicode(message, encoding)
        msg = MIMEText(TEXT % message, 'plain', encoding)
        # メールのヘッダを設定
        msg['Subject'] = Header(u'退職のお知らせ', encoding)
        msg['From'] = "Takanori Suzuki <takanori@kuzo.ham.jp>"
        msg['To'] = addr
        # メールを送信する
        s = smtplib.SMTP()
        s.connect()
        s.sendmail(me, addr, msg.as_string())
詳しくはWebで
• http://takanory.net/takalog/1284
• http://gigazine.net/news/20120305-
  headline/
One more thing...
トランペット買いました
演奏会やります


• 4月29日(日) 14:00
• 南大沢文化会館
• 「空」と「宙」
演奏会やります


• 4月29日(日) 14:00
                   チラシご持参の方

• 南大沢文化会館          入場無料!!!!

• 「空」と「宙」
ありがとうございました

Weitere ähnliche Inhalte

Mehr von Takanori Suzuki

The tale of I and python / Python とのはなし
The tale of I and python / Python とのはなしThe tale of I and python / Python とのはなし
The tale of I and python / Python とのはなしTakanori Suzuki
 
PyCon JP 2015 Closing speech
PyCon JP 2015 Closing speechPyCon JP 2015 Closing speech
PyCon JP 2015 Closing speechTakanori Suzuki
 
Two sides of Python Engineer Training Book in PyCon mini Sapporo
Two sides of Python Engineer Training Book in PyCon mini SapporoTwo sides of Python Engineer Training Book in PyCon mini Sapporo
Two sides of Python Engineer Training Book in PyCon mini SapporoTakanori Suzuki
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of PythonTakanori Suzuki
 
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"Takanori Suzuki
 
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"Takanori Suzuki
 
PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88
PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88
PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88Takanori Suzuki
 
Plone features and trends
Plone features and trendsPlone features and trends
Plone features and trendsTakanori Suzuki
 
PyCon JP を支える技術 / Technologies that underlie PyCon JP
PyCon JP を支える技術 / Technologies that underlie PyCon JPPyCon JP を支える技術 / Technologies that underlie PyCon JP
PyCon JP を支える技術 / Technologies that underlie PyCon JPTakanori Suzuki
 
PyCon JP 2014 Opening(14 sep)
PyCon JP 2014 Opening(14 sep)PyCon JP 2014 Opening(14 sep)
PyCon JP 2014 Opening(14 sep)Takanori Suzuki
 
PyCon JP 2014 opening(13 sep)
PyCon JP 2014 opening(13 sep)PyCon JP 2014 opening(13 sep)
PyCon JP 2014 opening(13 sep)Takanori Suzuki
 
Introduction of PyCon JP / TechLION vol.17
Introduction of PyCon JP / TechLION vol.17Introduction of PyCon JP / TechLION vol.17
Introduction of PyCon JP / TechLION vol.17Takanori Suzuki
 
collective.socialpublish
collective.socialpublishcollective.socialpublish
collective.socialpublishTakanori Suzuki
 
Introduction of PyCon APAC
Introduction of PyCon APACIntroduction of PyCon APAC
Introduction of PyCon APACTakanori Suzuki
 
Conference Conference 2013-05-17
Conference Conference 2013-05-17Conference Conference 2013-05-17
Conference Conference 2013-05-17Takanori Suzuki
 
Inside PyCon JP 2012 #bpstudy61
Inside PyCon JP 2012 #bpstudy61Inside PyCon JP 2012 #bpstudy61
Inside PyCon JP 2012 #bpstudy61Takanori Suzuki
 
How to spread reST and Sphinx
How to spread reST and SphinxHow to spread reST and Sphinx
How to spread reST and SphinxTakanori Suzuki
 
#himopy Sprint report in Pycon JP Sprints
#himopy Sprint report in Pycon JP Sprints#himopy Sprint report in Pycon JP Sprints
#himopy Sprint report in Pycon JP SprintsTakanori Suzuki
 

Mehr von Takanori Suzuki (20)

The tale of I and python / Python とのはなし
The tale of I and python / Python とのはなしThe tale of I and python / Python とのはなし
The tale of I and python / Python とのはなし
 
How to create PyCon JP
How to create PyCon JPHow to create PyCon JP
How to create PyCon JP
 
PyCon JP 2015 Closing speech
PyCon JP 2015 Closing speechPyCon JP 2015 Closing speech
PyCon JP 2015 Closing speech
 
Two sides of Python Engineer Training Book in PyCon mini Sapporo
Two sides of Python Engineer Training Book in PyCon mini SapporoTwo sides of Python Engineer Training Book in PyCon mini Sapporo
Two sides of Python Engineer Training Book in PyCon mini Sapporo
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"
 
Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"Two sides of "Python Engineer Training Book"
Two sides of "Python Engineer Training Book"
 
PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88
PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88
PyCon JP を支える技術/ Technology that underlie PyCon JP / BPStudy #88
 
Plone features and trends
Plone features and trendsPlone features and trends
Plone features and trends
 
Pycon JP 2014 Closing
Pycon JP 2014 ClosingPycon JP 2014 Closing
Pycon JP 2014 Closing
 
PyCon JP を支える技術 / Technologies that underlie PyCon JP
PyCon JP を支える技術 / Technologies that underlie PyCon JPPyCon JP を支える技術 / Technologies that underlie PyCon JP
PyCon JP を支える技術 / Technologies that underlie PyCon JP
 
PyCon JP 2014 Opening(14 sep)
PyCon JP 2014 Opening(14 sep)PyCon JP 2014 Opening(14 sep)
PyCon JP 2014 Opening(14 sep)
 
PyCon JP 2014 opening(13 sep)
PyCon JP 2014 opening(13 sep)PyCon JP 2014 opening(13 sep)
PyCon JP 2014 opening(13 sep)
 
Introduction of PyCon JP / TechLION vol.17
Introduction of PyCon JP / TechLION vol.17Introduction of PyCon JP / TechLION vol.17
Introduction of PyCon JP / TechLION vol.17
 
collective.socialpublish
collective.socialpublishcollective.socialpublish
collective.socialpublish
 
Introduction of PyCon APAC
Introduction of PyCon APACIntroduction of PyCon APAC
Introduction of PyCon APAC
 
Conference Conference 2013-05-17
Conference Conference 2013-05-17Conference Conference 2013-05-17
Conference Conference 2013-05-17
 
Inside PyCon JP 2012 #bpstudy61
Inside PyCon JP 2012 #bpstudy61Inside PyCon JP 2012 #bpstudy61
Inside PyCon JP 2012 #bpstudy61
 
How to spread reST and Sphinx
How to spread reST and SphinxHow to spread reST and Sphinx
How to spread reST and Sphinx
 
#himopy Sprint report in Pycon JP Sprints
#himopy Sprint report in Pycon JP Sprints#himopy Sprint report in Pycon JP Sprints
#himopy Sprint report in Pycon JP Sprints
 

Kürzlich hochgeladen

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Kürzlich hochgeladen (8)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

How to send Farewell e-mails or How to became a SP*MMER

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n