TidalPoo Posted February 13, 2022 Share Posted February 13, 2022 Привет! Не так давно, хоть на дворе и 21 век, но мне понадобилось, по работе, отправить большой файл (1Гб+) почтой. И в виду того, что рабочей Exchange блокировал всё, что весит больше 20Мб, в голову сразу пришла идея «нарезать» файл через архиватор на куски по 20Мб. Ок, я это сделал, но файлов оказало более 50шт. Сидеть и создавать 50 писем, добавлять адресата, прикреплять файл — перспектива трудозатрат была не очень приемлема. Но, на ум сразу пришло написать скрипт на python В общем, кому надо ловите: from os import walk import smtplib from email import encoders from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText mail_content = 'Текст Письма' sender_address = 'Отправитель@гмайл.ком' sender_pass = 'ПарольОтЯщикаОтправителя' receiver_address = 'Получатель@майл.ру' filenames = next(walk('data'), (None, None, []))[2] for file in filenames: message = MIMEMultipart() message['From'] = sender_address message['To'] = receiver_address message['Subject'] = 'Тема письма' message.attach(MIMEText(mail_content, 'plain')) attachment = open('data/' + file, "rb") p = MIMEBase('application', 'octet-stream') p.set_payload(attachment.read()) encoders.encode_base64(p) p.add_header('Content-Disposition', "attachment; filename= %s" % file) message.attach(p) session = smtplib.SMTP('smtp.gmail.com', 587) session.starttls() session.login(sender_address, sender_pass) text = message.as_string() session.sendmail(sender_address, receiver_address, text) session.quit() print('Файл', file, 'отправлен') Что делает код? 1) Просматривает папку data 2) Собирает все файлы которые там лежат 3) В цикле отправляет файлы отдельными письмами. Удобно и просто. Код настроен на работу с gmail.com, для других сервисов меняем stmp в коде. Код на GitHub 2 Quote Link to comment Share on other sites More sharing options...
Booblik Posted February 15, 2022 Share Posted February 15, 2022 Ты не парился отправляя файлы получателю, зато теперь получатель будет мучаться скачивая их все 🤣 1 Quote Link to comment Share on other sites More sharing options...
TidalPoo Posted February 20, 2022 Author Share Posted February 20, 2022 В 15.02.2022 в 13:58, Booblik сказал: мучаться скачивая их все тундерберд, вроде может скачать разом все вложения с выделенных писем. Да и оутлук тоже по-моему могёт) Не уверен, но гмаил, да и яндекс из браузера тоже могут) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.