编程技术文章分享与教程

网站首页 > 技术文章 正文

加班用了2天,结果同事30分钟就搞定了?你和别人的差距在哪里

hmc789 2024-11-08 19:44:22 技术文章 2 ℃

上次聊掉了后浪python,表姐用它做了个粗版本的自动发邮件,但是问题是:还没实现附件上传功能,后面表姐又重新捣鼓了下,贴上最近的代码,供有需要的小伙伴们,可以拿来就能用。虽然,表姐不是专门学python这后浪级语言的妹子,但是呢,研究好这门语言,工作中,它确实是能帮你节省不少时间,人力物力。还特备受领导认可。废话不多说,贴上成品代码及分析:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.Utils import COMMASPACE, formatdate
import os.path
 
# 第三方 SMTP 服务
mail_host="smtp.exmail.qq.com"  #设置服务器
mail_user="你的邮箱账户名@XX.com"    #用户名
mail_pass="你的邮箱密码"   #口令 
 
 
sender = '你的邮箱'
receivers = ['XX11@qq.com', 'XX22@gmail.com', 'XX33@outlook.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
?
#创建一个带附件的实例
message = MIMEMultipart()
message["Accept-Language"]="zh-CN"
message["Accept-Charset"]="ISO-8859-1,utf-8"
message['From'] = Header("职场大表姐", 'utf-8')
message['To'] =  COMMASPACE.join(receivers)
message['Date'] = formatdate(localtime=True)
subject = '清明美食 你知道多少'
message['Subject'] = Header(subject, 'utf-8')
 
#邮件正文内容
message.attach(MIMEText('清明 团子节...为你献上各种青团做法', 'plain', 'utf-8'))
?
# 构造附件1,传送当前目录下的 test.txt 文件
inpath = 'XXX公司概况.docx'
uipath = unicode(inpath , "utf8")
basename = os.path.basename(uipath)
att1 = MIMEText(open(uipath, 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字
att1["Content-Disposition"] = 'attachment; filename=%s' % basename.encode('utf-8')
message.attach(att1)
 
# 构造附件2,传送当前目录下的 runoob.txt 文件
att2 = MIMEText(open('文明名.txt', 'rb').read(), 'base64', 'utf-8')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename="文件名.txt"'
message.attach(att2)
?
try:
    smtpObj = smtplib.SMTP_SSL() 
    smtpObj.connect(mail_host, 465)    # 25 为 SMTP 端口号
    smtpObj.login(mail_user,mail_pass)  
    smtpObj.sendmail(sender, receivers, message.as_string())
    print "邮件发送成功"
except smtplib.SMTPException:
    print "Error: 无法发送邮件"

表姐划技能重点用python实现自动化添加附件、发送邮件功能,主要会用到smtplib和email模块。

  1. smtplib主要负责发送邮件;可以想象成整个发送动作:比如:登录邮箱服务器、登录邮箱、发送邮件。想想我们发送邮件是不是里面还会包含:发件人信息,包括填写发件人邮箱。收件人信息:包括填写收件人邮箱。然后再就是正文部分。
  2. email主要服装构造邮件。主要是指:邮箱页面的构成。比如:不管我们用哪家品牌的邮箱,都会有收件人、发件人、主体、正文、附件等类似这样的结构。

用python自动化添加附件、发送邮件功能,是工作中很实用功能。能够解放你的双手,为你职场升职加薪带来不少助力!


我是@职场大表姐,如果喜欢我分享的文章的话,记得关注我哦! 欢迎大在下面留言,一起交流探讨^_^

@职场众生相@我要上头条

标签列表
最新留言