직장에서 해야 할 일이 종종 있습니다. 일하기가 편리한가요? 보고서, 파일전송 등 다른 시간대의 작업을 매번 수동으로 하지 않고도 주기적으로 메일을 보낼 수 있도록 설정할 수 있다면 참 편리하지 않을까요? 이번 호에서는 정기적인 이메일 보내기와 관련된 여러 라이브러리를 소개하겠습니다.
email --이메일 형식 및 내용 설정
smtplib -- 이메일 보내기
QQ 메일함에 로그인하고 설정 - 계정 을 엽니다. , 회사 메일함 기타 이메일 예) :
다음 4가지 항목이 처음으로 모두 꺼졌습니다(저는 켜두었습니다) 여기), 뒷면의 열기를 클릭하고 바인딩된 휴대폰을 사용하여 지정된 번호로 "이메일 클라이언트 구성"을 보내도록 요청하고 이를 수행하면 서비스 인증 코드를 받게 됩니다.
from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication import smtplib
2.2 이메일 모듈
MIMEImage : 이미지 개체를 나타냅니다.
MIMEMultipart(세 가지 하위 유형이 있음): 혼합, 대체, 관련.
2.2.1 이메일 설정
# 设置邮箱的域名 HOST = 'smtp.qq.com' # 设置邮件标题 SUBJECT = '工作汇报' # 设置发件人邮箱 FROM = 'aaa@qq.com' # 设置收件人邮箱,可以同时发送到多个邮箱(用list) TO = 'bbb@qq.com' # 设置附件模式 message = MIMEMultipart('mixed')
2.2.2 添加正文
''' 添加正文 ''' content = '欧sir,附件为最新日期文件,请查收!' content_msg = MIMEText(content) message.attach(content_msg)
2.2.3 添加图片文件
image_file = open('Python当打之年.jpg', 'rb').read() image = MIMEImage(image_file) image.add_header('Content-Disposition', 'attachment', filename='Python当打之年.jpg') message.attach(image)
2.2.4 添加doc文件
doc = '算法与数据结构.doc' doc_file = MIMEApplication(open(doc, 'rb').read()) doc_file.add_header('Content-Disposition', 'attachment', filename=doc) message.attach(doc_file)
2.2.5 添加pdf文件
pdf = 'Python高性能编程.pdf' pdf_file = MIMEApplication(open(pdf, 'rb').read()) pdf_file.add_header('Content-Disposition', 'attachment', filename=pdf) message.attach(pdf_file)
2.2.6 添加表格文件
csv_file = open('blockdtas.xlsx', 'rb').read() csv = MIMEApplication(csv_file) csv.add_header('Content-Disposition', 'attachment', filename='blockdtas.xlsx') message.attach(csv)
2.3 smtplib 모듈
클라이언트 이메일 보내기:
# 获取SSL证书 email_client = smtplib.SMTP_SSL(host='smtp.qq.com') # 设置域名和端口,端口为465 email_client.connect(HOST, '465') # 邮箱授权码 email_client.login(FROM, '你的授权码') email_client.sendmail(from_addr=FROM, to_addrs=TO.split(','), msg=message.as_string()) # 关闭邮件发送客户端 email_client.quit()
3.1 일정 라이브러리
import schedule as schedule
def func(): print('{} 执行func'.format(time.strftime("%H:%M", time.localtime()))) schedule.every(1).minutes.do(func)
效果:
3.2 定时发送邮件
以下是几个周期发送邮件的语法,大家可以自行运行:
# 每1分钟执行一次任务: schedule.every(1).minutes.do(send_email) # 每小时执行一次任务: schedule.every().hour.do(send_email) # 每天在什么时间点执行一次任务: schedule.every().day.at('17:30').do(send_email) # 每10-20分钟(随机)执行一次任务: schedule.every(10).to(20).minutes.do(send_email) # 每周一执行一次任务: schedule.every().monday.do(send_email) # 每周一什么时间点执行一次任务: schedule.every().monday.at('09:00').do(send_email) # 每分钟在第45秒的时候执行任务: schedule.every().minute.at(':45').do(send_email)
完。
위 내용은 팁 | Python은 멈추지 않고 정기적으로 이메일을 보냅니다(자동으로 첨부 파일 추가).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!