Repository navigation
Expand file tree
/
Copy pathsend_email.py
More file actions
51 lines (43 loc) · 1.64 KB
/
Copy pathsend_email.py
File metadata and controls
51 lines (43 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import smtplib
from email.mime.text import MIMEText
class MailAccount:
"""
Stores settings for an email account.
"""
def __init__(self, server, login, password, sender_email, \
sender_name, use_tls=False):
self.server = server
self.login = login
self.password = password # Caution: use environment variable in production
self.mail = sender_email
self.sender = '"%s" <%s>'%(sender_name, sender_email)
self.use_tls = use_tls
def send_email(self, recipient_email, subject, body):
"""Sends an email to a defined address. """
# prepare message
message = MIMEText(body)
message["Subject"] = subject
message["From"] = self.mail
message["To"] = recipient_email
msg = message.as_string()
server = smtplib.SMTP(self.server)
server.set_debuglevel(1) # Caution: lots SMTP traffic - do not use in production
if self.use_tls: # deliberately starts tls if using TLS
server.ehlo()
server.starttls()
server.ehlo()
server.login(self.login, self.password)
server.sendmail(self.mail, recipient_email, msg)
server.quit()
if __name__ == '__main__':
accounts = [
MailAccount('mailserver_address', \
'your_account', 'your_password', 'your_email', \
'Your Name', use_tls=True),
]
for account in accounts:
try:
account.send_email('test@testdomain.de', 'Title', 'Content')
print ('\nSENT!!\n\n\n')
except smtplib.SMTPAuthenticationError:
print ('\nFAIL\n\n')