如何自动过滤电子邮件附件Python中的最新文件(How to automaticlly filter most recent file in email attachments Python)
我有一些代码使用MIME模块附加电子邮件中的文件但是每次我发送电子邮件时我都希望它自动发送文件中的前5个最新图片。
import os, re import sys import smtplib from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText SMTP_SERVER = 'smtp.gmail.com' SMTP_PORT = 587 sender = '***@gmail.com' password = "*******" recipient = '***@gmail.com' subject = 'Python emaillib Test' message = 'Images attached.' directory = "images/" def main(): msg = MIMEMultipart() msg['Subject'] = 'Python emaillib Test' msg['To'] = recipient msg['From'] = sender #this is where it searches for the image files = os.listdir(directory) jpgsearch = re.compile(".jpg", re.IGNORECASE) files = filter(jpgsearch.search, files) for filename in files: path = os.path.join(directory, filename) if not os.path.isfile(path): continue img = MIMEImage(open(path, 'rb').read(), _subtype="jpg") img.add_header('Content-Disposition', 'attachment', filename = filename) msg.attach(img) part = MIMEText('text', "plain") part.set_payload(message) msg.attach(part) session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT) session.ehlo() session.starttls() session.ehlo session.login(sender, password) session.sendmail(sender, recipient, msg.as_string()) session.quit() if __name__ == '__main__': main()我是Python的初学者,所以请帮助我们
I have got some code to attach files from an email using MIME module however each time I send the email I want it to automatically send only the first 5 most recent pictures in the file.
import os, re import sys import smtplib from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText SMTP_SERVER = 'smtp.gmail.com' SMTP_PORT = 587 sender = '***@gmail.com' password = "*******" recipient = '***@gmail.com' subject = 'Python emaillib Test' message = 'Images attached.' directory = "images/" def main(): msg = MIMEMultipart() msg['Subject'] = 'Python emaillib Test' msg['To'] = recipient msg['From'] = sender #this is where it searches for the image files = os.listdir(directory) jpgsearch = re.compile(".jpg", re.IGNORECASE) files = filter(jpgsearch.search, files) for filename in files: path = os.path.join(directory, filename) if not os.path.isfile(path): continue img = MIMEImage(open(path, 'rb').read(), _subtype="jpg") img.add_header('Content-Disposition', 'attachment', filename = filename) msg.attach(img) part = MIMEText('text', "plain") part.set_payload(message) msg.attach(part) session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT) session.ehlo() session.starttls() session.ehlo session.login(sender, password) session.sendmail(sender, recipient, msg.as_string()) session.quit() if __name__ == '__main__': main()I am a beginner to Python so help would be appreciated
最满意答案
使用os.stat获取atime,ctime或mtime。 然后简单比较时间戳(或使用基于datetime.datetime.fromtimestamp的其他逻辑)
Use os.stat to fetch atime, ctime or mtime. Then simple compare timestamps (or use some other logic based on datetime.datetime.fromtimestamp)
更多推荐
发布评论