Форум сайта python.su
Вопрос. на почту приходит файл Untitled.bin
А не исходный. Я так понимаю дело в кодировке?
Ниже кусок кода.
#отправка на email fromaddr = "____________@gmail.com" toaddr = "______@mail.ru" mypass = "*_*_*_*_" filename = os.path.split(j)[0]+"/"+"Общий файл.pdf" with open(filename, "rb") as attachment: part = MIMEBase("application", "octet-stream") part.set_payload(attachment.read()) encoders.encode_base64(part) part.add_header( "Content-Disposition", f"attachment; filename= {filename}",) msg = MIMEMultipart() msg['From'] = fromaddr msg['To'] = toaddr msg['Subject'] = "Subject" msg.attach(part) body = "Это пробное сообщение\n Test.Text.\n Let's get away from here!" msg.attach(MIMEText(body, 'plain')) server = smtplib.SMTP_SSL('smtp.gmail.com', 465) server.login(fromaddr, mypass) text = msg.as_string() server.sendmail(fromaddr, toaddr, text) server.quit() #отправка на email
Отредактировано Fedor_Bober (Июль 18, 2019 10:42:27)
Офлайн
Fedor_BoberЕсть среди примеров отправка вложений
Как приложить к письму аттач файл (вложение)?
Отредактировано py.user.next (Июль 18, 2019 11:58:08)
Офлайн
Вот мой пример. Работает и без функции. Если вам атач не нужен, то можете его удалить. Может конечно что-то криво написано. НО как я понял так и написал
def send_email(send_attach): msg = MIMEMultipart() msg.attach(MIMEText(email_body, 'plain', 'utf-8')) msg['Subject'] = Header(email_subject, 'utf-8') msg['From'] = send_address msg['To'] = ', '.join(recipients_emails) # attache added location = path_for_log + send_attach part = MIMEBase('application', "octet-stream") part.set_payload(open(location, "rb").read()) encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename={}'.format(send_attach)) msg.attach(part) # s = smtplib.SMTP(smtp_host, 587, timeout=10) s.set_debuglevel(0) s.starttls() s.login(login, password) # s.sendmail(msg['From'], recipients_emails, msg.as_string()) s.quit()
Отредактировано EugeneK (Июль 19, 2019 13:30:55)
Офлайн
EugeneKСпасибо за ответ. Но ничего не понял)))
Вот мой пример. Работает и без функции. Если вам атач не нужен, то можете его удалить. Может конечно что-то криво написано. НО как я понял так и написал
Офлайн