項目 | 値 |
---|---|
Google アカウントの設定 | [セキュリティ] で下記設定 ・[アプリ パスワード]を作成し使用 または ・[2 段階認証プロセス] をオフ ・[安全性の低いアプリのアクセス] をオン (デフォルト:オフ) (セキュリティが下がるので、専用アカウントの使用がベター) |
送信メール(SMTP)サーバ | smtp.gmail.com |
SSL のポート番号 | 465 |
TLS / STARTTLS のポート番号 | 587 |
メールアドレス | ~@gmail.com |
ユーザー名 | メールアドレス |
パスワード | Gmail のパスワード または アプリ パスワード (上記で設定) |
SSL なし接続のサポートサービス (2019/12 現在) | 8bitmime chunking enhancedstatuscodes pipelining size:35882577 smtputf8 starttls |
・SSL 接続のサポートサービス ・starttls()【TLS 開始】後のサポートサービス (2019/12 現在) | 上記のサービス (starttls を除く) に加え auth:" LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH" |
# from send_gmail_3_6 import Gmail
class Gmail(user, password)
userユーザメールアドレス
passwordパスワード
# メール送信 (TLS) メソッド
Gmail.send(subject, body, to, cc=None, bcc=None, *, files=[], debug=0)
戻り値拒否されたアドレスの辞書 (詳細は、send_message()【メール送信 (Message オブジェクト)】の戻り値 参照)
送信不可:空以外の辞書の返却 または 送信元にメール通知
subject件名
body本文 (<html> で始まっていれば、HTML テキスト)
toTO (複数:リスト・タプル)
ccCC (複数:リスト・タプル)
bccBCC (複数:リスト・タプル)
files (キーワード引数)添付ファイル (リスト・タプル)
debug (キーワード引数)デバッグ出力レベル
0~2 (set_debuglevel()【デバッグ出力レベル設定】と同等)
8 (トレース)
例外各種例外
※:SSL 送信は省略
# send_gmail_3_6.py
# Gmail 送信 (Python 3.6 以上)
import mimetypes
import os
import smtplib
from email.message import EmailMessage
# Gmail 送信 クラス
class Gmail:
# コンストラクタ
def __init__(self, user, password):
self._user = user
self._password = password
# メール送信 (TLS)
def send(self, subject, body, to, cc=None, bcc=None, *, files=[], debug=0):
GMAIL_SMTP_SERVER = "smtp.gmail.com"
GMAIL_PORT = 587
DEBUG_TRACE = 8
trace = True if (debug == DEBUG_TRACE) else False
if trace:
print("開始:Gmail 送信 (TLS)")
# メール作成
msg = EmailMessage()
# ヘッダー情報 設定
msg['Subject'] = subject
msg['From'] = self._user
msg['To'] = to
if cc is not None:
msg['Cc'] = cc
if bcc is not None:
msg['Bcc'] = bcc
if trace:
print("Subject:", msg['Subject'])
print("From:", msg['From'])
print("To:", msg['To'])
print("Cc:", msg['Cc'])
print("Bcc:", msg['Bcc'])
# 本文設定
html = body.startswith("<html>")
msg.set_content(body)
if html:
msg.set_type("text/html")
# 添付ファイル追加
if trace:
print("FILES:", len(files))
for file in files:
ctype, encoding = mimetypes.guess_type(file)
if (ctype is None) or (encoding is not None):
ctype = 'application/octet-stream'
maintype, subtype = ctype.split('/', 1)
with open(file, 'rb') as fp:
msg.add_attachment(
fp.read(),
maintype=maintype,
subtype=subtype,
filename=os.path.basename(file))
if trace:
print(f" {file} ({maintype}/{subtype})")
# メール送信 (TLS)
with smtplib.SMTP(GMAIL_SMTP_SERVER, GMAIL_PORT) as smtp:
# デバッグ出力レベル設定
if not trace:
smtp.set_debuglevel(debug)
# TLS 開始
smtp.ehlo()
if trace:
print("Support:", smtp.esmtp_features)
smtp.starttls()
# ログイン
smtp.ehlo()
smtp.login(self._user, self._password)
# メール送信
result = smtp.send_message(msg)
# with文により QUITコマンド自動発行
if trace:
if len(result) != 0:
print(result)
print("終了:Gmail 送信 (TLS)\n")
return result
from send_gmail_3_6 import Gmail
gmail_user = "~@gmail.com"
gmail_password = "~"
# Gmail 送信 オブジェクト生成
gmail = Gmail(gmail_user, gmail_password)
# プレーンテキスト
subject = "件名:Gmail プレーンテキスト"
body = "本文1\n本文2\n本文3"
to = "~"
gmail.send(subject, body, to)
# HTMLテキスト・TO (複数)
subject = "件名:Gmail HTMLテキスト TO (複数)"
body = "<html>本文1<br><b style='color: red;'>本文2</b><br>本文3</html>"
to = ("~", "~")
gmail.send(subject, body, to)
# プレーンテキスト・添付ファイル
subject = "件名:Gmail プレーンテキスト・添付ファイル"
body = "本文1\n本文2\n本文3"
to = "~"
files = ("./mail/text1.txt", "./mail/text2.txt", "./Data/test.zip")
gmail.send(subject, body, to, files=files)
import smtplib
from email.message import EmailMessage
GMAIL_SERVER = "smtp.gmail.com"
GMAIL_PORT = 587
GMAIL_PORT_SSL = 465
# メッセージ作成 Python 3.2 以上
# to・cc・bcc:文字列 (複数:カンマ区切り)・リスト
def create_msg_32(subject, body, from_, to, cc=None, bcc=None):
msg = EmailMessage()
msg['Subject'] = subject
msg['From'] = from_
msg['To'] = to
msg['Cc'] = cc
msg['Bcc'] = bcc
msg.set_content(body)
return msg
# Gmail 送信 (TLS) Python 3.2 以上
def send_gmail_tls_32(user, password, msg, debug=False):
print("開始:Gmail 送信 (TLS)")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
with smtplib.SMTP(GMAIL_SERVER, GMAIL_PORT) as smtp:
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# TLS 開始
smtp.ehlo() # 省略可
smtp.starttls()
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# メール送信
result = smtp.send_message(msg)
# with文により QUITコマンド自動発行
print("終了:Gmail 送信 (TLS)")
return result
# Gmail 送信 (SSL) Python 3.2 以上
def send_gmail_ssl_32(user, password, msg, debug=False):
print("開始:Gmail 送信 (SSL)")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
with smtplib.SMTP_SSL(GMAIL_SERVER, GMAIL_PORT_SSL) as smtp:
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# メール送信
result = smtp.send_message(msg)
# with文により QUITコマンド自動発行
print("終了:Gmail 送信 (SSL)")
return result
if __name__ == "__main__":
gmail_user = "~@gmail.com"
gmail_password = "~"
# TO・CC・BCC:文字列 (複数:カンマ区切り)・リスト
to = ”~”
cc = [ ”~”, ”~” ]
bcc = "~, ~"
body = "本文1\n本文2\n本文3"
# Gmail 送信 (TLS)
subject = "件名:Gmail (TLS) by Python 3.2 以上"
msg = create_msg_32(subject, body, gmail_user, to, cc, bcc)
send_gmail_tls_32(gmail_user, gmail_password, msg)
# Gmail 送信 (SSL)
subject = "件名:Gmail (SSL) by Python 3.2 以上"
msg = create_msg_32(subject, body, gmail_user, to, cc, bcc)
send_gmail_ssl_32(gmail_user, gmail_password, msg)
【出力例】
開始:Gmail 送信 (TLS)
SUBJECT: 件名:Gmail (TLS) by Python 3.2 以上
FROM: ~
TO: ~
CC: ~, ~
BCC: ~, ~
終了:Gmail 送信 (TLS)
開始:Gmail 送信 (SSL)
SUBJECT: 件名:Gmail (SSL) by Python 3.2 以上
FROM: ~
TO: ~
CC: ~, ~
BCC: ~, ~
終了:Gmail 送信 (SSL)
import smtplib
from email.mime.text import MIMEText
import copy
GMAIL_SERVER = "smtp.gmail.com"
GMAIL_PORT = 587
GMAIL_PORT_SSL = 465
# メッセージ作成 Python 3.2 未満
# to・cc・bcc:文字列 (複数:カンマ区切り)
def create_msg_31(subject, body, from_, to, cc=None, bcc=None):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_
msg['To'] = to
msg['Cc'] = cc
msg['Bcc'] = bcc
return msg
# Gmail 送信 (TLS) Python 3.2 未満
def send_gmail_tls_31(user, password, msg, debug=False):
print("開始:Gmail 送信 (TLS)")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
# 接続
smtp = smtplib.SMTP(GMAIL_SERVER, GMAIL_PORT)
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# TLS 開始
smtp.ehlo() # 省略可
smtp.starttls()
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# メール送信
list_to = msg['To'].split(",")
if msg['Cc'] is not None:
list_to += msg['Cc'].split(",")
if msg['Bcc'] is not None:
list_to += msg['Bcc'].split(",")
msg_copy = copy.copy(msg)
del msg_copy['Bcc']
result = smtp.sendmail(msg['From'], list_to, msg_copy.as_string())
# 切断
smtp.quit()
print("終了:Gmail 送信 (TLS)")
return result
# Gmail 送信 (SSL) Python 3.2 未満
def send_gmail_ssl_31(user, password, msg, debug=False):
print("開始:Gmail 送信 (SSL)")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
# 接続
smtp = smtplib.SMTP_SSL(GMAIL_SERVER, GMAIL_PORT_SSL)
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# 送信先編集
list_to = msg['To'].split(",")
if msg['Cc'] is not None:
list_to += msg['Cc'].split(",")
if msg['Bcc'] is not None:
list_to += msg['Bcc'].split(",")
msg_copy = copy.copy(msg)
del msg_copy['Bcc']
# メール送信
result = smtp.sendmail(msg['From'], list_to, msg_copy.as_string())
# 切断
smtp.quit()
print("終了:Gmail 送信 (SSL)")
return result
if __name__ == "__main__":
gmail_user = "~@gmail.com"
gmail_password = "~"
to = "~"
cc = "~,~"
bcc = "~,~"
body = "本文1\n本文2\n本文3"
# Gmail 送信 (TLS)
subject = "件名:Gmail (TLS) by Python 3.2 未満"
msg = create_msg_31(subject, body, gmail_user, to, cc, bcc)
send_gmail_tls_31(gmail_user, gmail_password, msg)
# Gmail 送信 (SSL)
subject = "件名:Gmail (SSL) by Python 3.2 未満"
msg = create_msg_31(subject, body, gmail_user, to, cc, bcc)
send_gmail_ssl_31(gmail_user, gmail_password, msg)
【出力例】
開始:Gmail 送信 (TLS)
SUBJECT: 件名:Gmail (TLS) by Python 3.2 未満
FROM: ~
TO: ~
CC: ~,~
BCC: ~,~
終了:Gmail 送信 (TLS)
開始:Gmail 送信 (SSL)
SUBJECT: 件名:Gmail (SSL) by Python 3.2 未満
FROM: ~
TO: ~
CC: ~,~
BCC: ~,~
終了:Gmail 送信 (SSL)
項目 | 値 |
---|---|
メール設定 | [IMAP/POP/SMTPアクセスとメール転送] で下記設定 [Yahoo! JAPAN公式サービス以外からのアクセスも有効にする] をオン [SMTP] を有効にする (デフォルト) |
送信メール(SMTP)サーバ | smtp.mail.yahoo.co.jp |
ポート番号 (SSL) | 465 (推奨) |
ポート番号 | 587 |
メールアドレス | ~@yahoo.co.jp |
ユーザー名 | メールアドレスの @ より前の部分 |
パスワード | Yahoo! JAPAN IDのパスワード |
サポートサービス (2019/12 現在) | auth:" LOGIN PLAIN XYMCOOKIE XYMYCONNECT" pipelining 8bitmime |
# from send_yahoomail_jp_3_6 import YahooMailJp
class YahooMailJp(user, password)
userユーザ名 (@yahoo.co.jp より前)
passwordパスワード
# メール送信 (SSL) メソッド
YahooMailJp.send(subject, body, to, cc=None, bcc=None, *, files=[], debug=0)
戻り値拒否されたアドレスの辞書 (詳細は、send_message()【メール送信 (Message オブジェクト)】の戻り値 参照)
送信不可:空以外の辞書の返却 または 送信元にメール通知
subject件名
body本文 (<html> で始まっていれば、HTML テキスト)
toTO (複数:リスト・タプル)
ccCC (複数:リスト・タプル)
bccBCC (複数:リスト・タプル)
files (キーワード引数)添付ファイル (リスト・タプル)
debug (キーワード引数)デバッグ出力レベル
0~2 (set_debuglevel()【デバッグ出力レベル設定】と同等)
8 (トレース)
例外各種例外
# send_yahoomail_jp_3_6.py
# Yahoo!メール 送信 (Python 3.6 以上)
import mimetypes
import os
import smtplib
from email.message import EmailMessage
# Yahoo!メール 送信 クラス
class YahooMailJp:
# コンストラクタ
def __init__(self, user, password):
self._user = user
self._password = password
# メール送信 (SSL)
def send(self, subject, body, to, cc=None, bcc=None, *, files=[], debug=0):
YAHOO_SMTP_SERVER = "smtp.mail.yahoo.co.jp"
YAHOO_PORT_SSL = 465
YAHOO_MAIL_SUFFIX = "@yahoo.co.jp"
DEBUG_TRACE = 8
trace = True if (debug == DEBUG_TRACE) else False
if trace:
print("開始:Yahoo!メール 送信 (SSL)")
# メール作成
msg = EmailMessage()
# ヘッダー情報 設定
msg['Subject'] = subject
msg['From'] = self._user + YAHOO_MAIL_SUFFIX
msg['To'] = to
if cc is not None:
msg['Cc'] = cc
if bcc is not None:
msg['Bcc'] = bcc
if trace:
print("Subject:", msg['Subject'])
print("From:", msg['From'])
print("To:", msg['To'])
print("Cc:", msg['Cc'])
print("Bcc:", msg['Bcc'])
# 本文設定
html = body.startswith("<html>")
msg.set_content(body)
if html:
msg.set_type("text/html")
# 添付ファイル追加
if trace:
print("FILES:", len(files))
for file in files:
ctype, encoding = mimetypes.guess_type(file)
if (ctype is None) or (encoding is not None):
ctype = 'application/octet-stream'
maintype, subtype = ctype.split('/', 1)
with open(file, 'rb') as fp:
msg.add_attachment(
fp.read(),
maintype=maintype,
subtype=subtype,
filename=os.path.basename(file))
if trace:
print(f" {file} ({maintype}/{subtype})")
# メール送信 (SSL)
with smtplib.SMTP_SSL(YAHOO_SMTP_SERVER, YAHOO_PORT_SSL) as smtp:
# デバッグ出力レベル設定
if not trace:
smtp.set_debuglevel(debug)
# ログイン
smtp.ehlo()
if trace:
print("Support:", smtp.esmtp_features)
smtp.login(self._user, self._password)
# メール送信
result = smtp.send_message(msg)
# with文により QUITコマンド自動発行
if trace:
if len(result) != 0:
print(result)
print("終了:Yahoo!メール 送信 (SSL)\n")
return result
from send_yahoomail_jp_3_6 import YahooMailJp
yahoo_user = "~" # @yahoo.co.jp 省略
yahoo_password = "~"
# Yahoo!メール 送信 オブジェクト生成
yahoo_mail = YahooMailJp(yahoo_user, yahoo_password)
# プレーンテキスト
subject = "件名:Yahoo!メール プレーンテキスト"
body = "本文1\n本文2\n本文3"
to = "~"
yahoo_mail.send(subject, body, to)
# HTMLテキスト・TO (複数)
subject = "件名:Yahoo!メール HTMLテキスト TO (複数)"
body = "<html>本文1<br><b style='color: red;'>本文2</b><br>本文3</html>"
to = ("~", "~")
yahoo_mail.send(subject, body, to)
# プレーンテキスト・添付ファイル
subject = "件名:Yahoo!メール プレーンテキスト・添付ファイル"
body = "本文1\n本文2\n本文3"
to = "~"
files = ("./mail/text1.txt", "./mail/text2.txt", "./Data/test.zip")
yahoo_mail.send(subject, body, to, files=files)
import smtplib
from email.message import EmailMessage
YAHOO_SERVER = "smtp.mail.yahoo.co.jp"
YAHOO_PORT = 587
YAHOO_PORT_SSL = 465
# メッセージ作成 Python 3.2 以上
# to・cc・bcc:文字列 (複数:カンマ区切り)・リスト
def create_msg_32(subject, body, from_, to, cc=None, bcc=None):
msg = EmailMessage()
msg['Subject'] = subject
msg['From'] = from_
msg['To'] = to
msg['Cc'] = cc
msg['Bcc'] = bcc
msg.set_content(body)
return msg
# Yahoo!メール 送信 (SSL) Python 3.2 以上
def send_yahoo_ssl_32(user, password, msg, debug=False):
print("開始:Yahoo!メール 送信 (SSL)")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
with smtplib.SMTP_SSL(YAHOO_SERVER, YAHOO_PORT_SSL) as smtp:
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# メール送信
result = smtp.send_message(msg)
# with文により QUITコマンド自動発行
print("終了:Yahoo!メール 送信 (SSL)")
return result
# Yahoo!メール 送信 Python 3.2 以上
def send_yahoo_32(user, password, msg, debug=False):
print("開始:Yahoo!メール 送信")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
with smtplib.SMTP(YAHOO_SERVER, YAHOO_PORT) as smtp:
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# メール送信
result = smtp.send_message(msg)
# with文により QUITコマンド自動発行
print("終了:Yahoo!メール 送信")
return result
if __name__ == "__main__":
yahoo_user = "~"
yahoo_mail = "~@yahoo.co.jp"
yahoo_password = "~"
# TO・CC・BCC:文字列 (複数:カンマ区切り)・リスト
to = "~"
cc = [ "~", "~" ]
bcc = "~,~"
body = "本文1\n本文2\n本文3"
# Yahoo!メール 送信 (SSL) 推奨
subject = "件名:Yahoo!メール (SSL) by Python 3.2 以上"
msg = create_msg_32(subject, body, yahoo_mail, to, cc, bcc)
send_yahoo_ssl_32(yahoo_user, yahoo_password, msg)
# Yahoo!メール 送信
subject = "件名:Yahoo!メール by Python 3.2 以上"
msg = create_msg_32(subject, body, yahoo_mail, to, cc, bcc)
send_yahoo_32(yahoo_user, yahoo_password, msg)
【出力例】
開始:Yahoo!メール 送信 (SSL)
SUBJECT: 件名:Yahoo!メール (SSL) by Python 3.2 以上
FROM: ~
TO: ~
CC: ~, ~
BCC: ~, ~
終了:Yahoo!メール 送信 (SSL)
開始:Yahoo!メール 送信
SUBJECT: 件名:Yahoo!メール by Python 3.2 以上
FROM: ~
TO: ~
CC: ~, ~
BCC: ~, ~
終了:Yahoo!メール 送信
import smtplib
from email.mime.text import MIMEText
import copy
YAHOO_SERVER = "smtp.mail.yahoo.co.jp"
YAHOO_PORT = 587
YAHOO_PORT_SSL = 465
# メッセージ作成 Python 3.2 未満
# to・cc・bcc:文字列 (複数:カンマ区切り)
def create_msg_31(subject, body, from_, to, cc=None, bcc=None):
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_
msg['To'] = to
msg['Cc'] = cc
msg['Bcc'] = bcc
return msg
# Yahoo!メール 送信 (SSL) Python 3.2 未満
def send_yahoo_ssl_31(user, password, msg, debug=False):
print("開始:Yahoo!メール 送信 (SSL)")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
# 接続
smtp = smtplib.SMTP_SSL(YAHOO_SERVER, YAHOO_PORT_SSL)
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# メール送信
list_to = msg['To'].split(",")
if msg['Cc'] is not None:
list_to += msg['Cc'].split(",")
if msg['Bcc'] is not None:
list_to += msg['Bcc'].split(",")
msg_copy = copy.copy(msg)
del msg_copy['Bcc']
result = smtp.sendmail(msg['From'], list_to, msg_copy.as_string())
# 切断
smtp.quit()
print("終了:Yahoo!メール 送信 (SSL)")
return result
# Yahoo!メール 送信 Python 3.2 未満
def send_yahoo_31(user, password, msg, debug=False):
print("開始:Yahoo!メール 送信")
print("SUBJECT:", msg['Subject'])
print("FROM:", msg['From'])
print("TO:", msg['To'])
print("CC:", msg['Cc'])
print("BCC:", msg['Bcc'])
# 接続
smtp = smtplib.SMTP(YAHOO_SERVER, YAHOO_PORT)
# デバッグ出力レベル設定
smtp.set_debuglevel(debug)
# ログイン
smtp.ehlo() # 省略可
smtp.login(user, password)
# 送信先編集
list_to = msg['To'].split(",")
if msg['Cc'] is not None:
list_to += msg['Cc'].split(",")
if msg['Bcc'] is not None:
list_to += msg['Bcc'].split(",")
msg_copy = copy.copy(msg)
del msg_copy['Bcc']
# メール送信
result = smtp.sendmail(msg['From'], list_to, msg_copy.as_string())
# 切断
smtp.quit()
print("終了:Yahoo!メール 送信")
return result
if __name__ == "__main__":
yahoo_user = "~"
yahoo_mail = "~@yahoo.co.jp"
yahoo_password = "~"
# TO・CC・BCC:文字列 (複数:カンマ区切り)
to = yahoo_mail
cc = "~, ~"
bcc = "~, ~"
body = "本文1\n本文2\n本文3"
# Yahoo!メール 送信 (SSL) 推奨
subject = "件名:Yahoo!メール (SSL) by Python 3.2 未満"
msg = create_msg_31(subject, body, yahoo_mail, to, cc, bcc)
send_yahoo_ssl_31(yahoo_user, yahoo_password, msg)
# Yahoo!メール 送信
subject = "件名:Yahoo!メール by Python 3.2 未満"
msg = create_msg_31(subject, body, yahoo_mail, to, cc, bcc)
send_yahoo_31(yahoo_user, yahoo_password, msg)
【出力例】
開始:Yahoo!メール 送信 (SSL)
SUBJECT: 件名:Yahoo!メール (SSL) by Python 3.2 未満
FROM: ~
TO: ~
CC: ~, ~
BCC: ~, ~
終了:Yahoo!メール 送信 (SSL)
開始:Yahoo!メール 送信
SUBJECT: 件名:Yahoo!メール by Python 3.2 未満
FROM: ~
TO: ~
CC: ~, ~
BCC: ~, ~
終了:Yahoo!メール 送信