メール送信

メモ


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!メール 送信