tkinter × mail 　複数のメール作成を簡単に📧 ボタン押すだけでメール文をコピーできるコードを公開

# ちょこっと業務を簡略化したい
　この記事では、ちょこっと効率化させたいことをプログラミングやツールをつかって解決していきます
ちょこっと削減した時間を、もっと人生楽しくなることに使いましょう！

# 💗本日のお題
## 📧 ウィジェット風　複数の定型メール文章のコピー 📧


営業や得意先とのやりとり、社内で業務を依頼する際など、業務中何度も同じような文章を送ることありますでしょうか？
コピーして、貼り付けでも良いですが、以前書いた文章を消して書き直すこと、めんどくさくないですか？
今回は、custom tkinterでウィジェット風に定型メール文章のコピーができる方法を共有します✨



## pythonデスクトップアプリ(custom tkinter)解決してみた
<環境>
🖥 Windows
📩 Outlook
🐍 python 3.12.5
🏆 VSCode


毎回、こんなメールを送っていると仮定します。↓
※他にも複数定期的に送っている文章あり

![スクリーンショット 2024-09-21 8.18.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3636287/76e63c01-da4a-8258-4089-57561b35e5da.png)




## custom tkinter　コード一部解説
※みなさんの業務に合うよう変更してください！

①　業務に合わせて定型文章はこちらに記載してください
`tkinter上のボタンになる名前`,`メールに載せる文章`となります


```python:python
templates = [
    ("経理 1 (承認済み)", "様\n\nお疲れ様です。ぽむさんです。\n\n経理申請書の確認が完了いたしました。問題なく承認されましたので、このまま処理を進めてまいります。何かご不明点がありましたらお知らせください。\n\n引き続きよろしくお願いいたします。"),
    ("経理 2 (不備がある場合)", "様\n\nお疲れ様です。ぽむさんです。\n\nご提出いただいた経理申請書を確認いたしましたが、いくつか不備がございました。お手数をおかけしますが、以下の点についてご確認のうえ、修正をお願いいたします。\n\n- 記入漏れがある箇所（）\n- 金額が異なる項目（）\n\nご対応よろしくお願いいたします。"),
    ("経理 3 (処理進行中)", "様\n\nお疲れ様です。ぽむさんです。\n\nご提出いただいた経理申請書について、現在処理を進行中です。完了次第ご連絡させていただきますので、今しばらくお待ちください。\n\n何かご不明点がありましたらお知らせください。"),
    ("確認内容の返答メール", "様\n\nお疲れ様です。ぽむさんです。\n\nご連絡ありがとうございます。こちらの件について、確認させていただきました。今後の対応についても引き続きよろしくお願いいたします。\n\n何かございましたらお気軽にご連絡ください。"),
    ("営業フォロー", "様\n\nお世話になっております。\n先日お問い合わせさせていただきましたぽむぽむ株式会社のぽむさんです。\n\n先日のご提案について、改めてご確認いただけましたでしょうか。ご不明な点や追加でご説明が必要な点がございましたら、ぜひお気軽にご連絡ください。\nまた、次回のご提案やお打ち合わせの機会についても、ご希望がございましたらお知らせいただければ幸いです。\n引き続き、どうぞよろしくお願い申し上げます。")
]
```




②　ボタンをもっとほしい方へ
forで、`templates`の行数分ボタンを作成しているので、何行でも追加すること可能です

```python:python
# ボタンを作成して配置
for (button_text, template_text) in templates:
    button = ctk.CTkButton(root, text=button_text, command=lambda text=template_text: copy_to_clipboard(text))
    button.pack(pady=10, padx=20)
```


③　ボタンを押した後
ボタンを押すと、下記のようにコピーされます





![スクリーンショット 2024-09-21 8.34.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3636287/6ffbc358-a740-7fd0-2875-6c7c5aaaf92c.png)



:::note info
最後にメールへ貼り付ける
Mac：  command ＋ V
Windows：  Ctrl ＋ V
:::

## 全体コード
<details><summary>全体コードはこちら</summary>

```python:python
import customtkinter as ctk
from tkinter import messagebox

# テキストをクリップボードにコピーする関数
def copy_to_clipboard(text):
    root.clipboard_clear()  
    root.clipboard_append(text)  
    root.update()  
    messagebox.showinfo("コピー完了", "テキストがクリップボードにコピーされました。")

# メインウィンドウを作成
root = ctk.CTk() 
root.title("メールのコピー")
root.geometry("500x400")

# テーマ設定（ダークモード、ライトモード）
ctk.set_appearance_mode("dark")  
ctk.set_default_color_theme("dark-blue")  

# ラベルを配置
title_label = ctk.CTkLabel(root, text="メールコピー", font=("Arial", 20))
title_label.pack(pady=20)

# ボタンと定型文
templates = [
    ("経理 1 (承認済み)", "様\n\nお疲れ様です。ぽむさんです。\n\n経理申請書の確認が完了いたしました。問題なく承認されましたので、このまま処理を進めてまいります。何かご不明点がありましたらお知らせください。\n\n引き続きよろしくお願いいたします。"),
    ("経理 2 (不備がある場合)", "様\n\nお疲れ様です。ぽむさんです。\n\nご提出いただいた経理申請書を確認いたしましたが、いくつか不備がございました。お手数をおかけしますが、以下の点についてご確認のうえ、修正をお願いいたします。\n\n- 記入漏れがある箇所（）\n- 金額が異なる項目（）\n\nご対応よろしくお願いいたします。"),
    ("経理 3 (処理進行中)", "様\n\nお疲れ様です。ぽむさんです。\n\nご提出いただいた経理申請書について、現在処理を進行中です。完了次第ご連絡させていただきますので、今しばらくお待ちください。\n\n何かご不明点がありましたらお知らせください。"),
    ("確認内容の返答メール", "様\n\nお疲れ様です。ぽむさんです。\n\nご連絡ありがとうございます。こちらの件について、確認させていただきました。今後の対応についても引き続きよろしくお願いいたします。\n\n何かございましたらお気軽にご連絡ください。"),
    ("営業フォロー", "様\n\nお世話になっております。\n先日お問い合わせさせていただきましたぽむぽむ株式会社のぽむさんです。\n\n先日のご提案について、改めてご確認いただけましたでしょうか。ご不明な点や追加でご説明が必要な点がございましたら、ぜひお気軽にご連絡ください。\nまた、次回のご提案やお打ち合わせの機会についても、ご希望がございましたらお知らせいただければ幸いです。\n引き続き、どうぞよろしくお願い申し上げます。")
]

# ボタンを作成して配置
for (button_text, template_text) in templates:
    button = ctk.CTkButton(root, text=button_text, command=lambda text=template_text: copy_to_clipboard(text))
    button.pack(pady=10, padx=20)

# Tkinterのメインループを開始
root.mainloop()

```
</details>



# 🧡最後に
このコードをベースに修正し、業務をちょこっと楽にしてみてください〜


今後、このようにちょっとした効率化のための情報を載せます。あなたの業務でも役立つこと願っています💓