Pythonでメールを送信|メール送信

python_mail_pcNEWS
python_mail_pc

はじめに

PythonでもRubyでもPerlでもそうだと思いますが、プログラムを書いているとメール送信処理を実装したくなるかと思います。

単純にメール送信するだけの処理もあれば添付メールを送信する処理もあり、コードの関数化、クラス化などをしようとすると段々複雑になってきます。

色々なパターンを自分の備忘録的に載せたいと思っているのですが、とりあえず簡単なメール送信処理から記載したいと思います。

※随時、追記していって肉付きのいいコンテンツにする予定です。

メール送信処理

Pythonでメール送信する際のコードは以下になります。

from email import message
import smtplib
import datetime


# Basic define
smtp_server = 'your_smtp_server.jp'
smtp_port = 587
from_email = 'from_email_address@xxxx.jp'
to_email = 'to_email_address@xxxx.jp'
user_name = 'your_user_name'
password = 'your_password'
dt = datetime.datetime.now()
now = dt.strftime('%Y/%m/%d %H:%M:%S')

# Create a message object
msg = message.EmailMessage()
msg_body = """
テスト本文1行目。
テスト本文2行目。
テスト本文3行目。

{}
""".format(now)

msg.set_content(msg_body)
msg['Subject'] = 'テストメールです(サブジェクト)'
msg['From'] = from_email
msg['To'] = to_email

# Create a smtp object and send an email.
smtp_obj = smtplib.SMTP(smtp_server, smtp_port)
smtp_obj.ehlo()
smtp_obj.starttls()
smtp_obj.ehlo()
smtp_obj.login(user_name, password)
smtp_obj.send_message(msg)
smtp_obj.quit()

簡単なメールを送信するだけであれば上記コードで良いかと思いますが、プログラム内で複数回使用するのであれば関数化、クラス化等、実装する方が良いかと思います。

メール送信処理(添付メール)

※すみません。準備中です。

メール送信処理(関数化)

※すみません。準備中です。

メール送信処理(クラス化)

※すみません。準備中です。

まとめ

どの言語でもそうだと思いますが、自分でプログラムを作っている際、メール送信処理を実装して自分のスマホにメール配信できるとちょっと嬉しくなると思います。

まっ、最初の頃だけだと思いますが(笑)。

ご自分でSMTPサーバを立てている方はそのサーバ経由でメールを配信処理させればいいと思いますが、そうでない方はHotmailやGmailのSMTPサーバ経由で配信させればいいと思います。

毎日ちゃんとプログラムを書いていれば失念することはないと思うのですが、残念ながら忙しいため失念防止用に記載しています。。

随時、時間ができた際にいろいろ追記していきたいと思っています。

コメント

タイトルとURLをコピーしました