46
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【自動化】PythonでOutlookメールを送信する

Last updated at Posted at 2020-06-04

最近のコミュニケーションツールはLINEなどチャットベースのものが主流になってきていますね。

ですが、日本ビジネスメール協会の『ビジネスメール実態調査2020』によると、仕事で使っている主なコミュニケーション手段の第1位は**「メール」(99.1%)**なのだそうです。

メールって面倒…

私の会社は『メール文化』なので、あらゆる情報をメールでやり取りしています。

中でも面倒なのが、
【ソフトウェアのバグのステイタスを毎日夕方にチームメンバーにメールする】
というものです。

定期的に同じような情報を同じようなメンバーにメールするという事務作業はどこの会社でも少なからずあるのではないでしょうか?

このような機械的な業務こそ、最も自動化の効果が大きいのです。

早速、具体的な方法を見ていきます。

##PythonでOutlookメールを送信

先ほどの『ビジネスメール実態調査2020』によると、仕事で使用しているメールソフトは「Outlook」(50.52%)と「Gmail」(38.40%)が二強だそうです。

そこで、本記事ではOutlookでのメール作成の方法をご紹介します。

outlookを操作するためにはwin32com.clientをimportする必要があります。
私はAnacondaを使っていますが、特に追加でインストールしなくてもimportできました。

python
import win32com.client

次にOutlookのオブジェクトを作成します。

python
outlook = win32com.client.Dispatch("Outlook.Application")

そして次にメールオブジェクトを作ります。

python
mail = outlook.CreateItem(0)

CreateItem(n)のnの部分を変えることにより、Outlookのメールや予定表など様々なアイテムを作ることができます。0にするとメールのオブジェクトを作成できます。

このmailオブジェクトに属性をセットしていくことで、メールを作成していきます。

属性 意味
mail.to 宛先
mail.cc CC
mail.bcc BCC
mail.subject 件名
mail.bodyFormat メール書式
1:テキスト
2:HTML
3:リッチテキスト
mail.body 本文
python

mail.to = 'hazuki@mahodo.com; aiko@mahodo.com'
mail.cc = 'onpu@mahodo.com'
mail.bcc = 'momoko@mahodo.com'
mail.subject = '1級試験の件'
mail.bodyFormat = 1
mail.body = '''お疲れ様です。どれみです。

なんか今年の試験はコロナの影響でリモート面接になったらしいです。
さっきマジョリカから聞きました。

びっくりしたので取り急ぎご連絡です。

よろしくお願いいたします。
'''

ここまでで作成したメールをいきなり送信する前に確認することをオススメします。
確認するには、mail.display(True)とします。

python

mail.display(True)

このようにメールが開きますので、確認してOKなら送信してください。

1級試験の件.png

皆様が面倒なメール送信業務から解放されることを願っています。
最後にコードをまとめて載せておきます。

python
import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application")

mail = outlook.CreateItem(0)

mail.to = 'hazuki@mahodo.com; aiko@mahodo.com'
mail.cc = 'onpu@mahodo.com'
mail.bcc = 'momoko@mahodo.com'
mail.subject = '1級試験の件'
mail.bodyFormat = 1
mail.body = '''お疲れ様です。どれみです。

なんか今年の試験はコロナの影響でリモート面接になったらしいです。
さっきマジョリカから聞きました。

びっくりしたので取り急ぎご連絡です。

よろしくお願いいたします。
'''

mail.display(True)

##Outlookのメールを読み込むには?

今回はOutlookのメール送信の自動化をご紹介しましたが、OutlookのメールをPythonで読み込む方法についてはこちらの記事をご覧ください。
https://qiita.com/konitech913/items/fa0cf66aad27d16258c0

46
65
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?