鱼C论坛

 找回密码
 立即注册
查看: 1121|回复: 1

想用Python实现对不同的人发送不同的邮件

[复制链接]
发表于 2021-7-19 17:05:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python小白咨询个工作中遇到的问题~~
想每天按时的给张三、李四、王五这几个客户发送不同的邮件内容,且附上不同的附件,这个用Python可以实现么?
可以的话,大概思路是怎样?求大神指导~~
直接甩代码更好哈哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-20 13:53:40 | 显示全部楼层
本帖最后由 suchocolate 于 2021-7-20 15:16 编辑

https://www.runoob.com/python3/python3-smtp.html
上面是教程,下面是根据你的需求写的案例:
  1. #!/usr/bin/env python
  2. # -*- coding: UTF-8 -*-
  3. import smtplib
  4. from email.mime.text import MIMEText
  5. from email.header import Header
  6. from email.mime.multipart import MIMEMultipart
  7. import time


  8. def send(receiver, m):
  9.     # 创建一个带附件的实例
  10.     message = MIMEMultipart()
  11.     message['From'] = Header("邮件里发件人名称", 'utf-8')
  12.     message['To'] = Header("邮件里收件人名称", 'utf-8')
  13.     subject = '邮件标题'
  14.     message['Subject'] = Header(subject, 'utf-8')

  15.     # 邮件正文内容
  16.     message.attach(MIMEText(m[0], 'plain', 'utf-8'))   # m[0]是邮件正文

  17.     # 构造附件,传送当前目录下的 file 文件
  18.     att1 = MIMEText(open(m[1], 'rb').read(), 'base64', 'utf-8')   # m[1]是邮件附件的名称
  19.     att1["Content-Type"] = 'application/octet-stream'
  20.     # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
  21.     att1["Content-Disposition"] = f'attachment; filename="{file}"'
  22.     message.attach(att1)
  23.     try:
  24.         smtpObj = smtplib.SMTP_SSL(mail_host, 465)
  25.         smtpObj.login(mail_user, mail_pass)
  26.         smtpObj.sendmail(sender, [receiver], message.as_string())
  27.         print("邮件发送成功")
  28.     except Exception as e:
  29.         print(e)


  30. if __name__ == "__main__":
  31.     mail_host = "smtp.qq.com"  # qq邮箱发件服务器域名,不用改
  32.     mail_user = "your_mail@qq.com"  # 你的qq邮箱
  33.     mail_pass = "your_authorization_code"  # qq邮箱给的授权码
  34.     sender = 'your_mail@qq.com'  # 你的qq邮箱
  35.     receivers = {'receive_1@qq.com': ['正文1', 'test1.txt'],
  36.                  'receive_2@sohu.com': ['正文2', 'test2.txt'],
  37.                  'receive_3@163.com': ['正文3', 'test3.txt']}  # 收件人与正文和附件对应关系
  38.     while True:  # 循环
  39.         ct = time.localtime(time.time())  # 查看当前时间
  40.         if ct[3] == 17 and ct[4] == 30:  # 当17:30的时候,给3个接受者发送邮件
  41.             for k, v in receivers.items():
  42.                 send(k, v)
  43.         time.sleep(59)  # 如果不是17:30,程序休眠
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 13:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表