1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import smtplib
- import ssl
- from email.mime.text import MIMEText
- from email.mime.multipart import MIMEMultipart
- from email.mime.application import MIMEApplication
- import config
- class mail:
- mail_cfg2 = config.MailConfig(**{
- 'server': 'mail.psmanaged.com',
- 'port': '465',
- 'secure': 'ssl',
- 'username': 'gc@scharf-automobile.de',
- 'password': '+Js10TnD*km4E6',
- 'email': 'gc@scharf-automobile.de'
- })
- def __init__(self):
- self.cfg = config.config()
- self.mail_cfg = self.cfg.smtp
- self.reply_to = self.cfg.kunde.replace(' ', '-').lower() + '@global-cube.de'
- self.context = ssl.create_default_context()
- def __enter__(self):
- try:
- self.mailserver = smtplib.SMTP_SSL(self.mail_cfg.server, self.mail_cfg.port, context=self.context)
- self.mailserver.login(self.mail_cfg.username, self.mail_cfg.password)
- except smtplib.SMTPException as e:
- print(e)
- return self
- def __exit__(self, exc_type, exc_val, exc_tb):
- self.mailserver.quit()
- def send(self, mailto, subject, html, attachment=None):
- msg = self.message(mailto, subject, html, attachment)
- try:
- result = self.mailserver.sendmail(self.reply_to, mailto, msg.as_string())
- print(result)
- except smtplib.SMTPException as e:
- print(e)
- def message(self, mailto, subject, html, attachment):
- msg = MIMEMultipart('alternative')
- msg['Reply-To'] = self.reply_to
- msg['From'] = f'Global Cube <{self.mail_cfg.email}>'
- msg['To'] = mailto
- msg['Subject'] = subject
- # msg.attach(MIMEText(text, 'plain'))
- msg.attach(MIMEText(html, 'html'))
- for name, filename in attachment or []:
- with open(filename, "rb") as f:
- part = MIMEApplication(f.read(), Name=name)
- part['Content-Disposition'] = f'attachment; filename="{name}"'
- msg.attach(part)
- return msg
- if __name__ == '__main__':
- with mail() as m:
- m.send('robert.bedner@gmail.com', 'Test 123', ['C:\\GAPS\\Portal\\daten\\1_1_Taegliche_Erfolgskontrolle_1.pdf'])
|