#!/usr/bin/python3 # Tento skript se volá při doručování pošty (například pomocí "execute" v Sieve) # a předá mail webové části OSMO přes /api/email-dsn. import os from pathlib import Path import requests from requests.exceptions import RequestException import sys if len(sys.argv) != 2: print('Arguments: <URL of OSMO root>', file=sys.stderr) sys.exit(1) osmo_url = sys.argv[1] mail = sys.stdin.buffer.read() key_path = Path.home() / '.config/osmo/dsn-api-key' try: with key_path.open() as f: key = f.readline().strip() if key == "": print(f'Cannot read key from {key_path}', file=sys.stderr) sys.exit(1) except OSError as e: print(f'Cannot read {key_path}: {e}', file=sys.stderr) sys.exit(1) try: reply = requests.post( os.path.join(osmo_url, 'api/email-dsn'), data=mail, headers={'Authorization': f'Bearer {key}'}, timeout=30) except RequestException as e: print(f'Error sending DSN: {e}') sys.exit(1) if reply.status_code != 200: print(f'Error sending DSN: HTTP status {reply.status_code}') sys.exit(1)