法一:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

# 设置邮件服务器信息
mail_host = 'smtp.163.com'  # SMTP 服务器
mail_user = '15290201609@163.com'  # 发件人邮箱
mail_pass = 'TANEXSOXKSBSGTLWp'  # 发件人邮箱密码


# 设置邮件内容
subject = '邮件主题'
content = '邮件正文'

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = mail_user
msg['To'] = '1210353303@qq.com'  # 收件人邮箱
msg['Subject'] = subject


# 添加邮件正文
msg.attach(MIMEText(content, 'plain', 'utf-8'))

# 添加附件(如果有)
filename = 'example.txt'  # 附件文件名
attachment = open(filename, 'rb').read()

# 创建 MIMEBase 对象,添加附件
mime_base = MIMEBase('application', 'octet-stream')
mime_base.set_payload(attachment)
encoders.encode_base64(mime_base)
mime_base.add_header('Content-Disposition', f'attachment; filename={filename}')

# 将附件添加到邮件中
msg.attach(mime_base)

# 发送邮件
try:
    server = smtplib.SMTP_SSL(mail_host, 465)
    server.login(mail_user, mail_pass)
    server.sendmail(mail_user, msg['To'], msg.as_string())
    server.quit()
    print('邮件发送成功!')
except smtplib.SMTPException as e:
    print(f'Error: 无法发送邮件,原因:{e}')

法二:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

# 设置邮件服务器信息
mail_host = 'smtp.163.com'  # SMTP 服务器
mail_user = '15290201609@163.com'  # 发件人邮箱
mail_pass = 'TANEXSOXKSBSGTLWp'  # 发件人邮箱密码

to_mail_user = '1210353303@qq.com'  # 收件人邮箱

# 设置邮件内容
subject = '邮件主题'
content = '邮件正文'

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = mail_user
msg['Subject'] = subject


# 添加邮件正文
msg.attach(MIMEText(content, 'plain', 'utf-8'))

# 添加附件(如果有)
filename = 'example.txt'  # 附件文件名
attachment = open(filename, 'rb').read()

# 创建 MIMEBase 对象,添加附件
mime_base = MIMEBase('application', 'octet-stream')
mime_base.set_payload(attachment)
encoders.encode_base64(mime_base)
mime_base.add_header('Content-Disposition', f'attachment; filename={filename}')

# 将附件添加到邮件中
msg.attach(mime_base)

# 发送邮件
try:
    server = smtplib.SMTP_SSL(mail_host, 465)
    server.login(mail_user, mail_pass)
    server.sendmail(mail_user, to_mail_user, msg.as_string())
    server.quit()
    print('邮件发送成功!')
except smtplib.SMTPException as e:
    print(f'Error: 无法发送邮件,原因:{e}')

法三:

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr


def send_email1(content, theme, to_mail):
    # ### 1.邮件内容配置 ###
    # 邮件文本
    msg = MIMEText(content, 'html', 'utf-8')
    # 邮件上显示的发件人
    msg['From'] = formataddr(["中国科学院", "15290201609@163.com"])
    # 邮件上显示的主题
    msg['Subject'] = theme

    # ### 2.发送邮件 ###
    server = smtplib.SMTP_SSL("smtp.163.com")
    server.login("15290201609@163.com", "TANEXSOXKSBSGTLWp")
    server.sendmail("15290201609@163.com", to_mail, msg.as_string())
    server.quit()


text = """
白日依山尽,黄河入海流。
欲穷千里目,更上一层楼。
"""

send_email1(text, '好诗鉴赏', 'liyanzhao@mcake.com')
文档更新时间: 2023-11-16 15:06   作者:李延召