Initial commit
This commit is contained in:
34
composeMails.py
Executable file
34
composeMails.py
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import urllib.parse
|
||||
|
||||
parser = argparse.ArgumentParser(prog='composeMails')
|
||||
parser.add_argument("-s", "--subject", required=True, dest="subject")
|
||||
parser.add_argument("-t", "--template", required=True, dest="template")
|
||||
parser.add_argument("-r", "--in-reply-to", required=True, dest="inReplyTo")
|
||||
parser.add_argument("-f", "--really", dest="really", action="store_true")
|
||||
parser.add_argument("-l", "--limit", dest="limit")
|
||||
args = parser.parse_args()
|
||||
|
||||
body_raw = None
|
||||
with open(args.template, "r") as tmpl:
|
||||
body_raw = "\n\n" + tmpl.read()
|
||||
cwd = os.getcwd()
|
||||
|
||||
if not args.really:
|
||||
print("# This is a dry run")
|
||||
|
||||
parsed = json.load(sys.stdin)
|
||||
for [addr, name, vocative, filename] in parsed:
|
||||
if args.limit is not None and args.limit not in name:
|
||||
continue
|
||||
body = body_raw.replace("@@VOCATIVE@@", vocative)
|
||||
print(f"Creating mail for {addr}")
|
||||
if args.really:
|
||||
subprocess.run(["aerc", f"mailto:{name} <{addr}>?account=gbl&subject={urllib.parse.quote_plus(args.subject)}&in-reply-to={urllib.parse.quote_plus(args.inReplyTo)}&body={urllib.parse.quote_plus(body)}"], check=True)
|
||||
subprocess.run(["aerc", ":attach", filename])
|
||||
Reference in New Issue
Block a user