🤖
【Python×OpenAI API】自動メール送信プログラム
結果
概要
私はメール本文の作成にすごく精神を消耗してしまうので、自動化したいと考えました。そこでGPTの出番です!将来的には、秘書のAIがいてメール作成業務を請け負ってくれることを想像しています。
秘書のイメージ
プログラム
import openai
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# OpenAI APIキー
openai.api_key = "YOUR_OPENAI_API_KEY"
# メールの内容を生成する関数
def generate_email_body(prompt):
response = openai.chat.completions.create(
model="gpt-3.5-turbo",#好きなモデルを指定
max_tokens=100,#メールの文量を制限
messages=[
{"role": "system", "content": "あなたはメール作成業務に特化したアシスタントです"},#GPTのカスタム
{"role": "user", "content": prompt}
]
)
print(response.choices[0].message.content)
return response.choices[0].message.content
# 送信者と受信者のメールアドレス
sender_email = "送信者のメールアドレス"
receiver_email = "受信者のメールアドレス"
# GmailのSMTPサーバー設定
smtp_server = "smtp.gmail.com"
port = 587 # TLS用
password = "アプリパスワードを入力"
# メールの作成
message = MIMEMultipart("alternative")
message["Subject"] = "メール件名を入力"
message["From"] = sender_email
message["To"] = receiver_email
# プロンプトとしてメールの本文を生成
prompt = "作成してほしいメールの概要を入力"
email_body = generate_email_body(prompt)
# MIMETextオブジェクトの作成
part1 = MIMEText(email_body, "plain")
# メールメッセージに本文パーツを追加
message.attach(part1)
# メールサーバーへの接続とメールの送信
try:
server = smtplib.SMTP(smtp_server, port)
server.ehlo() # サーバーの挨拶
server.starttls() # セキュアな接続の開始
server.ehlo() # 再度サーバーの挨拶
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message.as_string())
print("Email sent successfully!")
except Exception as e:
# エラーの印刷
print(e)
finally:
server.quit() # サーバーの接続を閉じる
今後の展望
現状ではメール本文の確認を行った後に送信するということが出来ないのでGPTsに移行して可能にしていきます。GPTsを使うことで何度か内容を練り直すことも可能だと考えています。
最後まで読んでいただきありがとうございました。
Discussion