Files
janssen/Outlook/outlook_login_v1.0.py
T

63 lines
2.1 KiB
Python

"""
=======================================================================
Název: outlook_login_v1.0.py
Verze: 1.0
Datum: 2026-06-03
Popis: Otevře Outlook OWA (https://outlook.cloud.microsoft/mail/)
v persistent Chromium profilu, počká na ruční přihlášení
uživatele (včetně MFA), po potvrzení v konzoli uloží
session (profile + storage_state) a zavře prohlížeč.
Další skripty mohou stejný profil znovu otevřít bez loginu.
=======================================================================
"""
from pathlib import Path
from playwright.sync_api import sync_playwright
BASE_DIR = Path(__file__).resolve().parent
PROFILE_DIR = BASE_DIR / "outlook_profile"
STORAGE_STATE = BASE_DIR / "outlook_auth.json"
START_URL = "https://outlook.cloud.microsoft/mail/"
def main() -> None:
PROFILE_DIR.mkdir(exist_ok=True)
with sync_playwright() as p:
context = p.chromium.launch_persistent_context(
user_data_dir=str(PROFILE_DIR),
headless=False,
no_viewport=True,
args=[
"--disable-blink-features=AutomationControlled",
"--start-maximized",
],
)
page = context.pages[0] if context.pages else context.new_page()
page.goto(START_URL)
print()
print("=" * 70)
print(" Přihlas se v otevřeném okně do Outlooku.")
print(" Až budeš v inboxu (vidíš seznam e-mailů), vrať se sem.")
print("=" * 70)
answer = input(" Hotovo? Napiš 'OK' pro uložení session: ").strip().lower()
if answer == "ok":
try:
context.storage_state(path=str(STORAGE_STATE))
print(f" Uloženo: {STORAGE_STATE}")
except Exception as e:
print(f" storage_state se neuložil: {e}")
print(f" Persistent profil: {PROFILE_DIR}")
else:
print(" Zrušeno — session se neuloží (profil ale zůstává).")
context.close()
if __name__ == "__main__":
main()