User: испарвь PS C:\Users\Вадим> & C:/Users/Вадим/AppData/Local/Programs/Python/Python312/python.exe c:/Users/Вадим/Desktop/mine.py

--- Удаление электронной почты ---

URL: https://mails.org/api/email/delete
Статус код: 200
Заголовки ответа:
Date: Sat, 09 Nov 2024 17:36:02 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
cf-cache-status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=GaVk1s1c%2FTVbup%2B1Cpl0ILvla1OXVOdK3YywP4yvkz0KdzPPVq3dUmg2SbN49KogPkxPXwLqBviPkw%2F3qCKoc8H58zbOuxunZiz6UkvAfu%2FznjbzORUUtszFPKw%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 8dff900e0e42d38c-FRA
Content-Encoding: zstd
alt-svc: h3=":443"; ma=86400
server-timing: cfL4;desc="?proto=TCP&rtt=67701&sent=6&recv=7&lost=0&retrans=0&sent_bytes=2831&recv_bytes=1258&delivery_rate=59175&cwnd=252&unsent_bytes=0&cid=b265e068f67f6c97&ts=191&x=0"

Ошибка при разжатии ответа с помощью zstandard: error determining content size from frame header
Попробуем альтернативный метод декомпрессии с использованием brotli.

Ошибка при разжатии ответа с помощью brotli: BrotliDecompress failed

Не удалось удалить электронную почту. Сообщение: Нет ответа

--- Получение списка писем (Inbox) ---

URL: https://mails.org/api/email/inbox
Статус код: 200
Заголовки ответа:
Date: Sat, 09 Nov 2024 17:36:02 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
cf-cache-status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Lxg2rXgQpxwdP1AXyxyurRbLmPt9aIJ2wes3UOO2siCHIwSdtJngRnLvVXjnEw0AyAJpoX6SoLcbDPBnqsymI2JhAO62gRbuQE8undpcj8Op8ZA8UvSzYqjVVWU%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 8dff90105c3cdba1-FRA
Content-Encoding: zstd
alt-svc: h3=":443"; ma=86400
server-timing: cfL4;desc="?proto=TCP&rtt=70628&sent=6&recv=7&lost=0&retrans=0&sent_bytes=2833&recv_bytes=1273&delivery_rate=56927&cwnd=252&unsent_bytes=0&cid=e6534ea03ec4e09c&ts=181&x=0"

Ошибка при разжатии ответа с помощью zstandard: error determining content size from frame header
Попробуем альтернативный метод декомпрессии с использованием brotli.

Ошибка при разжатии ответа с помощью brotli: BrotliDecompress failed

Не удалось получить список писем. Сообщение: Нет ответа
PS C:\Users\Вадим> 

import requests
import zstandard as zstd
import brotli
import json

def make_post_request(url, headers, cookies, data):
    try:
        response = requests.post(url, headers=headers, cookies=cookies, data=data)
        
        print(f"\nURL: {url}")
        print(f"Статус код: {response.status_code}")
        print("Заголовки ответа:")
        for key, value in response.headers.items():
            print(f"{key}: {value}")

        content_encoding = response.headers.get('Content-Encoding', '').lower()

        # Обработка сжатых ответов
        if 'zstd' in content_encoding:
            try:
                dctx = zstd.ZstdDecompressor()
                decompressed = dctx.decompress(response.content)
                text = decompressed.decode('utf-8')
                print("\nТело ответа (разжатое):")
                print(text)
                
                # Попытка разобрать JSON
                try:
                    json_response = json.loads(text)
                    print("\nТело ответа (JSON):")
                    print(json.dumps(json_response, indent=4, ensure_ascii=False))
                    return json_response
                except json.JSONDecodeError as e:
                    print(f"\nОшибка при разборе JSON: {e}")
                    return None
            except zstd.ZstdError as e:
                print(f"\nОшибка при разжатии ответа с помощью zstandard: {e}")
                print("Попробуем альтернативный метод декомпрессии с использованием brotli.")
                
                # Альтернативная попытка декомпрессии с использованием brotli
                try:
                    decompressed = brotli.decompress(response.content)
                    text = decompressed.decode('utf-8')
                    print("\nТело ответа (разжатое с помощью brotli):")
                    print(text)
                    
                    try:
                        json_response = json.loads(text)
                        print("\nТело ответа (JSON):")
                        print(json.dumps(json_response, indent=4, ensure_ascii=False))
                        return json_response
                    except json.JSONDecodeError as e:
                        print(f"\nОшибка при разборе JSON: {e}")
                        return None
                except brotli.error as e:
                    print(f"\nОшибка при разжатии ответа с помощью brotli: {e}")
                    return None

        elif 'br' in content_encoding:
            # Обработка сжатия Brotli
            try:
                decompressed = brotli.decompress(response.content)
                text = decompressed.decode('utf-8')
                print("\nТело ответа (разжатое с помощью Brotli):")
                print(text)
                
                try:
                    json_response = json.loads(text)
                    print("\nТело ответа (JSON):")
                    print(json.dumps(json_response, indent=4, ensure_ascii=False))
                    return json_response
                except json.JSONDecodeError as e:
                    print(f"\nОшибка при разборе JSON: {e}")
                    return None
            except brotli.error as e:
                print(f"\nОшибка при разжатии ответа с помощью brotli: {e}")
                return None

        elif 'gzip' in content_encoding or 'deflate' in content_encoding:
            # requests автоматически обрабатывает gzip и deflate
            try:
                json_response = response.json()
                print("\nТело ответа (JSON):")
                print(json.dumps(json_response, indent=4, ensure_ascii=False))
                return json_response
            except json.JSONDecodeError as e:
                print(f"\nОшибка при разборе JSON: {e}")
                return None

        else:
            # Не сжатый ответ или неизвестный алгоритм сжатия
            try:
                json_response = response.json()
                print("\nТело ответа (JSON):")
                print(json.dumps(json_response, indent=4, ensure_ascii=False))
                return json_response
            except json.JSONDecodeError as e:
                print(f"\nОшибка при разборе JSON: {e}")
                return None

    except requests.exceptions.RequestException as e:
        print(f"\nПроизошла ошибка при выполнении запроса: {e}")
        return None

def delete_email():
    url = "https://mails.org/api/email/delete"

    headers = {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate, br, zstd",
        "Accept-Language": "ru-RU,ru;q=0.9",
        "Content-Type": "application/x-www-form-urlencoded",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                      "AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/130.0.0.0 Safari/537.36",
        "Origin": "https://mails.org",
        "Referer": "https://mails.org/",
    }

    cookies = {
        "visited": "1731171145.920407",
        "cf_clearance": "YOUR_CF_CLEARANCE_TOKEN",  # Замените на актуальное значение
        # Добавьте другие куки, если необходимо
    }

    data = {
        "token": "8aef6ede51bc55fb3b3e4d35c2e38a05",
        "timestamp": "1731171162",
        "hash": "dd45817e9d6643ed3396da41ca5f3c1db1b87fb495557727ec82c66dcb494338",
        # Добавьте другие необходимые параметры, если требуется
    }

    print("\n--- Удаление электронной почты ---")
    response = make_post_request(url, headers, cookies, data)
    if response and response.get("success"):
        print(f"\nУспешно удалено: {response.get('message')}")
    else:
        error_message = response.get("message") if response else "Нет ответа"
        print(f"\nНе удалось удалить электронную почту. Сообщение: {error_message}")

def get_inbox():
    url = "https://mails.org/api/email/inbox"

    headers = {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate, br, zstd",
        "Accept-Language": "ru-RU,ru;q=0.9",
        "Content-Type": "application/x-www-form-urlencoded",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                      "AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/130.0.0.0 Safari/537.36",
        "Origin": "https://mails.org",
        "Referer": "https://mails.org/",
    }

    cookies = {
        "visited": "1731171145.920407",
        "cf_clearance": "YOUR_CF_CLEARANCE_TOKEN",  # Замените на актуальное значение
        # Добавьте другие куки, если необходимо
    }

    data = {
        "last_cache_id": "0",
        "token": "ff79ff39d7c1022480b5354faa42f997",
        "timestamp": "1731171378",
        "hash": "3db2025fe07bf07d463044a6a5f03adccc72553088e6f7a59e3dd4f13af29720",
        # Добавьте другие необходимые параметры, если требуется
    }

    print("\n--- Получение списка писем (Inbox) ---")
    response = make_post_request(url, headers, cookies, data)
    if response and response.get("success"):
        emails = response.get("emails", [])
        if emails:
            print("\nПолученные письма:")
            for idx, email in enumerate(emails, start=1):
                print(f"\nПисьмо {idx}:")
                for key, value in email.items():
                    print(f"{key}: {value}")
        else:
            print("\nНет писем в почтовом ящике.")
    else:
        error_message = response.get("message") if response else "Нет ответа"
        print(f"\nНе удалось получить список писем. Сообщение: {error_message}")

def main():
    delete_email()
    get_inbox()

if __name__ == "__main__":
    main()