mirror of
https://github.com/simple-login/app.git
synced 2025-02-24 07:43:54 +08:00
handle both emails with reply+ and ra+ prefix
This commit is contained in:
parent
8c3834c957
commit
46b0872710
1 changed files with 15 additions and 12 deletions
|
@ -79,19 +79,22 @@ class MailHandler:
|
||||||
smtp = SMTP(POSTFIX_SERVER, 25)
|
smtp = SMTP(POSTFIX_SERVER, 25)
|
||||||
msg = Parser(policy=SMTPUTF8).parsestr(message_data)
|
msg = Parser(policy=SMTPUTF8).parsestr(message_data)
|
||||||
|
|
||||||
if not envelope.rcpt_tos[0].startswith("reply+"): # Forward case
|
# Reply case
|
||||||
LOG.debug("Forward phase")
|
# reply+ or ra+ (reverse-alias) prefix
|
||||||
app = new_app()
|
if envelope.rcpt_tos[0].startswith("reply+") or envelope.rcpt_tos[0].startswith(
|
||||||
|
"ra+"
|
||||||
with app.app_context():
|
):
|
||||||
return self.handle_forward(envelope, smtp, msg)
|
|
||||||
|
|
||||||
else:
|
|
||||||
LOG.debug("Reply phase")
|
LOG.debug("Reply phase")
|
||||||
app = new_app()
|
app = new_app()
|
||||||
|
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
return self.handle_reply(envelope, smtp, msg)
|
return self.handle_reply(envelope, smtp, msg)
|
||||||
|
else: # Forward case
|
||||||
|
LOG.debug("Forward phase")
|
||||||
|
app = new_app()
|
||||||
|
|
||||||
|
with app.app_context():
|
||||||
|
return self.handle_forward(envelope, smtp, msg)
|
||||||
|
|
||||||
def handle_forward(self, envelope, smtp, msg: EmailMessage) -> str:
|
def handle_forward(self, envelope, smtp, msg: EmailMessage) -> str:
|
||||||
"""return *status_code message*"""
|
"""return *status_code message*"""
|
||||||
|
|
Loading…
Reference in a new issue