diff --git a/botMail.py b/botMail.py index 9e8c1c8..b9be45a 100644 --- a/botMail.py +++ b/botMail.py @@ -15,7 +15,7 @@ class Config(BaseProxyConfig): def do_update(self, helper: ConfigUpdateHelper) -> None: helper.copy("sender_addr") helper.copy("sender_passwd") - helper.copy("stmp_server") + helper.copy("smtp_server") helper.copy("smtp_port") helper.copy("send_to") @@ -29,31 +29,41 @@ class MailBot(Plugin): async def command(self, evt: MessageEvent, pattern: str) -> None: await evt.mark_read() try: - txtemail = re.search('<(.*)>', pattern) - subject = txtemail.group(1) - txtemail = re.sub('<(.*)>',"", pattern) + fullMail = pattern.split("\n", 1) + subject = fullMail[0] + body = fullMail[1] - smtp_server=smtplib.SMTP(self.config["smtp_server"],self.config["smtp_port"]) + self.log.info("Connecting to " + self.config["smtp_server"]+", port : "+ str(self.config["smtp_port"])) + smtp_server=smtplib.SMTP(self.config["smtp_server"],self.config["smtp_port"],None,20, None) smtp_server.ehlo() smtp_server.starttls() smtp_server.ehlo() + self.log.info("With user : " + self.config["sender_addr"]) smtp_server.login(self.config["sender_addr"], self.config["sender_passwd"]) msg = MIMEMultipart() user = re.search('@(.*):', evt.sender) - msg['From'] = user.group(1) + '<' + self.config["sender_addr"] + '>' + msg['From'] = user.group(1) + " via ConDeBot<" + self.config["sender_addr"] + '>' self.log.info(msg['From']) msg['To'] = self.config["send_to"] msg['Subject'] = subject msg['Date'] = email.utils.formatdate(localtime=True) - body = txtemail + msg.attach(MIMEText(body)) - smtp_server.sendmail(msg['From'],msg['To'],msg.as_string()) self.log.info(msg.as_string()) + smtp_server.sendmail(msg['From'],msg['To'],msg.as_string()) await evt.respond('Mail envoyé') - except: + except IndexError: + if len(subject) == 0: + await evt.respond("

!mail Object
Corps du message

", allow_html=True) + else: + self.log.error("Il manque le corps du mail") + await evt.respond('Il manque le corps du mail') + await evt.respond("

!mail Object
Corps du message

", allow_html=True) + except Exception as e: + self.log.error(str(e)) await evt.respond('Erreur envoi mail') - await evt.respond("""!mail Corps du message""") + await evt.respond("

!mail Object
Corps du message

", allow_html=True) @classmethod