Skip to content
Snippets Groups Projects

Zpracování nedoručenek

Merged Martin Mareš requested to merge dsn into devel
Files
44
+ 22
3
@@ -2,21 +2,40 @@
# 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)
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:
reply = requests.post(f'{osmo_url}api/email-dsn', data=mail, timeout=30)
except RequestException:
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)
Loading