python smtplib发送邮件可直接运行代码

0 说明

以下代码,只需根据个人情况修改相应配置即可直接运行。

1.发送普通格式邮件

import smtplib
from email.mime.text import MIMEText
from email.header import Header
import logging

def send_html():
    token = 'xxx'
    receivers = ['xxx@xxx.com']

    mail_msg = """
    <p>Python 邮件发送测试...</p>
    <p><a href="https://www.baidu.com/">这是百度的链接</a></p>
    """

    message = MIMEText(mail_msg, 'html', 'utf-8')
    subject = 'Python SMTP 邮件测试'
    message['Subject'] = Header(subject, 'utf-8')

    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect("xxx")
        smtpObj.sendmail(token, receivers, message.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print("Error: 无法发送邮件")
        logging.exception(e)

send_html()

2.发送带附件邮件

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

def send_mail():
    token = 'xxx'
    receivers = ['xxx@xxx.com'] # 接收邮件

    # 创建一个带附件的实例
    message = MIMEMultipart()
    subject = 'Python SMTP 发送添加附件的邮件'
    message['Subject'] = Header(subject, 'utf-8')

    message.attach(MIMEText('这是Python 邮件发送测试……', 'plain', 'utf-8'))
    # 构造附件,传送当前目录下的文件
    att = MIMEText(open('pltimage.py', 'rb').read(), 'base64', 'utf-8')
    att["Content-Type"] = 'application/octet-stream'
    # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    att["Content-Disposition"] = 'attachment; filename="pltimage.txt"'
    message.attach(att)

    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect("xxx")
        smtpObj.sendmail(token, receivers, message.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("Error: 无法发送邮件")

send_mail()

3.

import smtplib
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
import logging


def send_mail():
    token = 'xxx'
    receivers = ['xxx@xxx.com']  # 接收邮件

    msgRoot = MIMEMultipart('related')
    subject = 'Python SMTP 发送图片邮件测试'
    msgRoot['Subject'] = Header(subject, 'utf-8')

    msgAlternative = MIMEMultipart('alternative')
    msgRoot.attach(msgAlternative)

    mail_msg = """
    <p>这是一张手机桌面的截图...</p>
    <p>图片演示:</p>
    <p><img src="cid:image1"></p>
    """

    msgAlternative.attach(MIMEText(mail_msg, 'html', 'utf-8'))

    # 指定图片为当前目录
    fp = open('images/img1.png', 'rb')
    msgImage = MIMEImage(fp.read())
    fp.close()

    # 定义图片 ID,在 HTML 文本中引用
    msgImage.add_header('Content-ID', '<image1>')
    msgRoot.attach(msgImage)

    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect("xxx")
        smtpObj.sendmail(token, receivers, msgRoot.as_string())
        print("邮件发送成功")
    except smtplib.SMTPException as ex:
        logging.exception(ex)
        print("Error: 无法发送邮件")

send_mail()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值