Windows10からX Server経由でメールを送信するPython3.6プログラムを書いた

メールが送れると便利ですね。自宅鯖とかだとポート塞がれててSMTPが送れなかったりするんで、そういう意味でもレンタル鯖は気楽です。

コード


import smtplib, sys
subject = "Subject"
message_body = "Hello!! This is test Mail."
mail_server = "svXXXX.xserver.jp"
port = 587
from_email = "from@example.com"
to_email = "to@example.com"
password = "from@example.comの登録に設定したパスワードを入れて下さい!"
try:
smtp_obj = smtplib.SMTP(mail_server, port)
smtp_obj.ehlo()
smtp_obj.login(from_email, password)
smtp_obj.sendmail(from_email, to_email, f"Subject: {subject}\n{message_body}")
print(f"メールの送信に成功しました。\n送信内容:\nSubject: {subject}\n{message_body}")
finally:
smtp_obj.quit()
if sys.platform == 'win32':
input("キーを押すと終了します...")
else:
print("正常に終了しました。")

svXXXX...とかは各自読み替えて下さい。XSERVERにログインして、サーバーパネル - メールソフトの設定に載っている項目と、こちらのマニュアルを参考にしてみて下さい。

Name Param
受信メール(POP)サーバー svXXXX.xserver.jp
送信メール(SMTP)サーバー svXXXX.xserver.jp
ユーザー名(アカウント名) メールアドレス(メールアカウント名)
パスワード メールアドレスに設定したパスワード

注意

上記のやり方だとメールに日本語を含むと送信に失敗します。日本語を使いたい場合はemailパッケージを使えばよいそうです。
私は面倒臭いので全部英語にしました。俺が分かればいいので、めちゃめちゃな英語ですw

あと、Python3.6で追加されたf"hogehoge{変数}mogemoge"文法を使っています。テンプレートエンジンみたいに分かりやすく、変数展開しなくても良いのでぽかミスも減りますね。
なので~Python3.5の方はご注意下さい。そのままコピペしても動きませんぜ!

コメントを残す

メールアドレスが公開されることはありません。