メール送信
Gmail 送信
Yahoo!メール 送信

Gmail 送信例  Python 3.6 以上 (HTML テキスト・添付ファイル 対応) 3.2 以上 3.6 未満 3.2 未満
Yahoo!メール 送信例  Python 3.6 以上 (HTML テキスト・添付ファイル 対応) 3.2 以上 3.6 未満 3.2 未満
(smtplib【SMTP プロトコルクライアント】)

メモ


Gmail送信

メモ

Gmail 送信 (Python 3.6 以上)
# 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)

Gmail 送信 (Python 3.2 以上 3.6 未満)
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)

Gmail 送信 (Python 3.2 未満)
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)

Yahoo!メール送信

メモ


Yahoo! メール 送信 (Python 3.6 以上)
# 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)

Yahoo! メール 送信 (Python 3.2 以上 3.6 未満)
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!メール 送信

Yahoo! メール 送信 (Python 3.2 未満)
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!メール 送信