diff --git a/main.py b/main.py index ad1dea14b9c7a20c03e92a0d61483f78f66a8bf8..52ae2aa44936068eed095f9d488b178669d59153 100644 --- a/main.py +++ b/main.py @@ -4,6 +4,7 @@ from email import message_from_bytes import email.policy from dateutil.parser import parse import subprocess +import re class CustomSMTPServer(smtpd.SMTPServer): def process_message(self, peer, mailfrom, rcpttos, data, **kwargs): @@ -11,16 +12,25 @@ class CustomSMTPServer(smtpd.SMTPServer): body = msg.get_content() d = parse(msg.get('Date')) title = msg.get('Subject') - subprocess.run('wp', 'post', 'create', - '--post_author', 1, - '--post_date', f'{d:%Y-%m-%d}', - '--post_title', title, - '--post_publish', 'publish', - '--post_category', 'Veckomail', - '--post_content', f'<pre>{body}</pre>') + + if not title: + print("Title missing") + return + + title = re.sub('^\[.*\] *', '', title) + + subprocess.run(['wp', 'post', 'create', + '--post_author=2' + f'--post_date={d:%Y-%m-%d}', + f"--post_title={title}", + '--post_status=publish', + '--post_category=Veckomail', + f"--post_content=<pre>{body}</pre>"], + cwd='/usr/share/wordpress', + shell=False) return -server = CustomSMTPServer(('localhost', 1025), None, +server = CustomSMTPServer(('0.0.0.0', 1025), None, decode_data=False) asyncore.loop()