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

 

目录

 

一.获取授权密码

二.代码

三.发送带附件的邮件


一.获取授权密码

     以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()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要现定时运行 Python 脚本发送邮件,可以使用 Python 的第三方库 schedule 和 smtplib。 首先,安装这两个库: ```python pip install schedule ``` ```python pip install secure-smtplib ``` 接下来,编写 Python 脚本,实现定时发送邮件的功能: ```python import schedule import time import smtplib from email.mime.text import MIMEText from email.header import Header # 定义发送邮件的函数 def send_email(): # 邮件内容 mail_content = '这是一封测试邮件' # 发送方信息 sender = '发送方邮箱' password = '发送方邮箱密码' # 接收方信息 receivers = ['接收方邮箱'] # 邮件标题和内容 message = MIMEText(mail_content, 'plain', 'utf-8') message['From'] = Header(sender) message['To'] = Header(','.join(receivers)) message['Subject'] = Header('测试邮件') # 发送邮件 try: smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465) smtp_obj.login(sender, password) smtp_obj.sendmail(sender, receivers, message.as_string()) print('邮件发送成功') except smtplib.SMTPException as e: print('邮件发送失败', e) # 定义定时任务 def job(): print('开始发送邮件...') send_email() # 设置定时任务,每隔一定时间执行一次 schedule.every(10).minutes.do(job) # 每隔10分钟执行一次 # schedule.every().hour.do(job) # 每小时执行一次 # schedule.every().day.at('10:30').do(job) # 每天10:30执行一次 # 循环执行定时任务 while True: schedule.run_pending() time.sleep(1) ``` 在上述代码中,`send_email()` 函数定义了如何发送邮件,而 `job()` 函数则定义了定时任务的具体内容。在这里,我们将每隔10分钟执行一次 `job()` 函数,可以根据自己的需要设置定时任务的时间间隔。 最后,在命令行中运行该 Python 脚本即可。注意,为了保证邮件能够正常发送,需要在发送方邮箱的设置中开启 SMTP 服务,并且在代码中填写正确的发送方邮箱密码

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Alocus_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值