こんな人の役に立つかも
・社内環境の制約からSMTPを使ったメール送信ができない
・メール作成自動化のプログラミングをしてみたい
・事務作業を効率化したい
先日、お客様と打ち合わせしていたときに「Pythonを使ってメールを送信したい!」というリクエストがありました。
詳しく話を聞いてみると、
プログラムが実行完了したことをメールで通知したい・・・
毎回同じテンプレートでメール作成するのが面倒・・・
たしかに、面倒なことは自動化して、手間も時間も省きたいですよね。
ちなみに、日本のビジネスにおいて、主なコミュニケーション手段の第一位は「メール」(99.1%)だそうです。
また、仕事で使用しているメールソフトは「Outlook」(50.52%)と「Gmail」(38.40%)が二強だそうです。
そこで、今回は PythonからOutlookを使ってメールを送信する方法 をご紹介したいと思います!
事前準備
outlookを操作するためには win32com.client をインポートする必要があります。
※Anaconda環境であれば、特に追加でインストールは不要です。
もし、インストールが必要な方は、pip などでインストールしましょう。
pip install pywin32 |
※紛らわしいですが、ライブラリ名はwin32ではなくpywin32になります。
この「win32com」というライブラリは、COMインターフェース経由でパソコンにインストールされているアプリケーションを操作することができます。
それでは、「win32com」を使って Microsoft Outlook からメールを送信するコードを紹介します。
PythonでOutlookメールを送信するサンプルコード
import win32com.client # Outlookアプリケーションをインスタンス化 outlook = win32com.client.Dispatch(“Outlook.Application”) # メールオブジェクトの作成 mail = outlook.CreateItem(0) # 0:メール mail.to = ‘to.xxx@example.com’ mail.cc = ‘cc.xxx@example.com’ mail.bcc = ‘bcc.xxx@example.com’ mail.subject = ‘テストメール’ mail.bodyFormat = 1mail.body = ”’各位 お疲れ様です。(ここに本文を入力)よろしくお願いいたします。 ”’ # 送信前に確認(Outlookが起動) mail.display(True) # メール送信 mail.Send() |
簡単にプログラムの解説をします。
まず、Outlookを操作するために、Outlookアプリケーションをインスタンス化します。
outlook = win32com.client.Dispatch(“Outlook.Application”) |
次に、メールオブジェクトを作成します。
mail = outlook.CreateItem(0) |
オブジェクトの作成時に、outlook.CreateItem(0) の「0」の部分を変えることにより、Outlookのメールや予定表など様々なアイテムを作ることができます。
0:メール
1:予定
2:連絡先
3:タスク
次に、メールオブジェクトに属性をセットしていくことで、メールを作成していきます。
作成したメールを送信する前に確認したい場合は、mail.display(True) とします。
そうすることで、以下のようにOutlookが起動し、作成したメールを確認できます。
メールが完成したら Send()メソッドを使って送信します。
mail.Send() |
以上です。
今回はOutlookメールを自動送信するシンプルなプログラムをご紹介しましたが、色をつけたり文字色を変えたり、画像を埋め込んだりもできます。
さらに、win32comを使うと、Outlookの他にもExcelなども自動化できます。
興味のある方は、ぜひチャレンジしてみてください!
まとめ
- PythonでOutlookからメールを送信するなら「win32com」を使うと簡単!
API ARIMA AutoML Bard BigQuery Bing ChatGPT Cloud Endpoints Cloud Storage DWH EBPM GAS Generative AI Google Apps Script Google Cloud Google Form Google Workspace IT組織 Outlook PaLM PDF Python ReportLab selenium Statsmodels STL VertexAI Vertex Forecast スクラッチ セミナー ソトミル トレンド分析 トレーニング バッチ予測 世界は女性とデジタルが救う 女性活躍 技術 時系列データ分析 業務効率化 機械学習 特徴量エンジニアリング 生成AI 自動化 評価指標 需要予測