diff --git a/stacosys/core/cron.py b/stacosys/core/cron.py index b4525e3..beed2ad 100644 --- a/stacosys/core/cron.py +++ b/stacosys/core/cron.py @@ -21,26 +21,34 @@ templater = Templater(template_path) def fetch_mail_answers(lang, mailer: Mailer, rss: Rss, site_token): - for msg in mailer.fetch(): - # filter stacosys e-mails - m = re.search(REGEX_EMAIL_SUBJECT, msg.subject, re.DOTALL) - if not m: - continue + while True: + msgs = mailer.fetch() + if len(msgs) == 0: + break + msg = msgs[0] + _process_answer_msg(msg, lang, mailer, rss, site_token) + mailer.delete(msg.id) - comment_id = int(m.group(1)) - submitted_token = m.group(2) - # validate token - if submitted_token != site_token: - logger.warning("ignore corrupted email. Unknown token %d" % comment_id) - continue +def _process_answer_msg(msg, lang, mailer: Mailer, rss: Rss, site_token): + # filter stacosys e-mails + m = re.search(REGEX_EMAIL_SUBJECT, msg.subject, re.DOTALL) + if not m: + return - if not msg.plain_text_content: - logger.warning("ignore empty email") - continue + comment_id = int(m.group(1)) + submitted_token = m.group(2) - _reply_comment_email(lang, mailer, rss, msg, comment_id) - mailer.delete(msg.id) + # validate token + if submitted_token != site_token: + logger.warning("ignore corrupted email. Unknown token %d" % comment_id) + return + + if not msg.plain_text_content: + logger.warning("ignore empty email") + return + + _reply_comment_email(lang, mailer, rss, msg, comment_id) def _reply_comment_email(lang, mailer: Mailer, rss: Rss, email: Email, comment_id):