通过python脚本使用smtp发送邮件(首先获取授权密码)

博客介绍了用Python通过SMTP协议发送带附件邮件的方法。首先以163邮箱为例,说明了获取授权密码的步骤,即注册账号后在设置中开启SMTP服务获取密码。还给出了发送邮件及发送带附件邮件的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

 

一.获取授权密码

二.代码

三.发送带附件的邮件


一.获取授权密码

     以163邮箱为例,注册账号之后在设置中开启smtp服务,开通后会弹出一串密码,请记住您的密码,留作备用,如下。

二.代码

# -*- coding:utf-8 -*-
from smtplib import SMTP
from email.header import Header
from email.mime.text import MIMEText


def main():
    # 请自行修改下面的邮件发送者和接收者
    sender = 's191*******@163.com'
    receivers = ['111111111@qq.com'] #填入接收者邮箱地址
    message = MIMEText('用Python发送邮件的示例代码.', 'plain', 'utf-8')
    message['From'] = 's191*******@163.com'
    message['To'] = '111111111@qq.com'#填入接收者邮箱地址
    message['Subject'] = Header('示例代码实验邮件', 'utf-8')

    smtper = SMTP('smtp.163.com')
    # 请自行修改下面的授权密码,在第一节中找到获取方式,不是账户密码
    passs = '**************'
    smtper.login(sender, passs)
    smtper.sendmail(sender, receivers, message.as_string())
    print('邮件发送完成!')


if __name__ == '__main__':
    main()

三.发送带附件的邮件

以上代码是只有发送邮件,如果发送附件,代码如下:

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

import urllib


def main():
    # 创建一个带附件的邮件消息对象
    message = MIMEMultipart()
    
    # 创建文本内容
    text_content = MIMEText('附件中有您的百亿项目请查收', 'plain', 'utf-8')
    message['Subject'] = Header('项目报表', 'utf-8')
    # 将文本内容添加到邮件消息对象中
    message.attach(text_content)

    # 读取需要传送的文件并将文件作为附件添加到邮件消息对象中
    with open('fujian1.txt', 'rb') as f:
        txt = MIMEText(f.read(), 'base64', 'utf-8')
        txt['Content-Type'] = 'text/plain'
        txt['Content-Disposition'] = 'attachment; filename=hello.txt'
        message.attach(txt)
    # 读取需要传送的文件并将文件作为附件添加到邮件消息对象中
    with open('fujian2.xls', 'rb') as f:
        xls = MIMEText(f.read(), 'base64', 'utf-8')
        xls['Content-Type'] = 'application/vnd.ms-excel'
        xls['Content-Disposition'] = 'attachment; filename=month-data.xlsx'
        message.attach(xls)
    
    # 创建SMTP对象
    smtper = SMTP('smtp.163.com')
    # 开启安全连接
    # smtper.starttls()
    sender = 's191*******@163.com'
    receivers = ['********@qq.com']
    # 登录到SMTP服务器
    # 此处使用邮件客户端授权码进行登录,见第一节介绍
    smtper.login(sender, '*************')
    # 发送邮件
    smtper.sendmail(sender, receivers, message.as_string())
    # 与邮件服务器断开连接
    smtper.quit()
    print('发送完成!')


if __name__ == '__main__':
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值