/
O.S.Prog
/
InstrumentProtocol
Обзор
Документация
Войти
/
O.S.Prog
/
InstrumentProtocol
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
core/feedback.py
67 строк
3 KB
O.S.Prog
Initial commit: InstrumentProtocol v2.0
17 июл 2026, 15:11
17 июл 2026, 15:11
1e845bd
Код
Авторство
О чём код?
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from datetime import datetime class FeedbackSender: def __init__(self): # Данные почты-робота (только служебный аккаунт) self.smtp_server = "smtp.yandex.ru" self.smtp_port = 465 self.sender_email = "feedback-osprog@yandex.ru" self.sender_password = "ondzegeyfjjeilzq" # Пароль приложения self.receiver_email = "feedback-osprog@yandex.ru" # На эту же почту, оттуда пересылка def send_feedback(self, text, version="1.1"): """Отправляет отзыв на почту-робот (автоматически пересылается на основную)""" if not text or not text.strip(): return False, "Текст отзыва не может быть пустым." try: msg = MIMEMultipart("alternative") msg["Subject"] = f"📩 Отзыв о программе (v{version})" msg["From"] = self.sender_email msg["To"] = self.receiver_email html = f""" <html> <head> <style> body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 20px; }} .header {{ background: #2c3e50; color: white; padding: 15px; border-radius: 8px; }} .content {{ background: #f5f7fa; padding: 20px; border-radius: 8px; margin-top: 10px; }} .footer {{ color: #7f8c8d; font-size: 12px; margin-top: 20px; }} </style> </head> <body> <div class="header"> <h2>✉️ Новый отзыв</h2> <p><b>Версия программы:</b> {version}</p> <p><b>Отправлено:</b> {datetime.now().strftime("%d.%m.%Y %H:%M:%S")}</p> </div> <div class="content"> <p><b>Текст отзыва:</b></p> <p style="white-space: pre-wrap; background: white; padding: 15px; border-radius: 5px;">{text}</p> </div> <div class="footer"> <p>Отправлено автоматически из программы «Протокол рентгенологического исследования»</p> </div> </body> </html> """ part = MIMEText(html, "html") msg.attach(part) with smtplib.SMTP_SSL(self.smtp_server, self.smtp_port) as server: server.login(self.sender_email, self.sender_password) server.sendmail(self.sender_email, self.receiver_email, msg.as_string()) return True, "Отзыв успешно отправлен. Спасибо!" except smtplib.SMTPAuthenticationError: return False, "Ошибка аутентификации. Проверьте настройки почты." except smtplib.SMTPException as e: return False, f"Ошибка отправки: {str(e)}" except Exception as e: return False, f"Неизвестная ошибка: {str(e)}"