Skip to content

Commit 3937f93

Browse files
Day 12
1 parent 8d148d2 commit 3937f93

File tree

2 files changed

+155
-0
lines changed

2 files changed

+155
-0
lines changed

Day 12/day_12_end.py

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
import datetime
2+
from email.mime.multipart import MIMEMultipart
3+
from email.mime.text import MIMEText
4+
import smtplib
5+
6+
host = "smtp.gmail.com"
7+
port = 587
8+
username = "hungrypy@gmail.com"
9+
password = "iamhungry2016"
10+
from_email = username
11+
to_list = ["hungrypy@gmail.com"]
12+
13+
14+
15+
class MessageUser():
16+
user_details = []
17+
messages = []
18+
email_messages = []
19+
base_message = """Hi {name}!
20+
21+
Thank you for the purchase on {date}.
22+
We hope you are exicted about using it. Just as a
23+
reminder the purcase total was ${total}.
24+
Have a great one!
25+
26+
Team CFE
27+
"""
28+
def add_user(self, name, amount, email=None):
29+
name = name[0].upper() + name[1:].lower()
30+
amount = "%.2f" %(amount)
31+
detail = {
32+
"name": name,
33+
"amount": amount,
34+
}
35+
today = datetime.date.today()
36+
date_text = '{today.month}/{today.day}/{today.year}'.format(today=today)
37+
detail['date'] = date_text
38+
if email is not None: # if email != None
39+
detail["email"] = email
40+
self.user_details.append(detail)
41+
def get_details(self):
42+
return self.user_details
43+
def make_messages(self):
44+
if len(self.user_details) > 0:
45+
for detail in self.get_details():
46+
name = detail["name"]
47+
amount = detail["amount"]
48+
date = detail["date"]
49+
message = self.base_message
50+
new_msg = message.format(
51+
name=name,
52+
date=date,
53+
total=amount
54+
)
55+
user_email = detail.get("email")
56+
if user_email:
57+
user_data = {
58+
"email": user_email,
59+
"message": new_msg
60+
}
61+
self.email_messages.append(user_data)
62+
else:
63+
self.messages.append(new_msg)
64+
return self.messages
65+
return []
66+
def send_email(self):
67+
self.make_messages()
68+
if len(self.email_messages) > 0:
69+
for detail in self.email_messages:
70+
user_email = detail['email']
71+
user_message = detail['message']
72+
try:
73+
email_conn = smtplib.SMTP(host, port)
74+
email_conn.ehlo()
75+
email_conn.starttls()
76+
email_conn.login(username, password)
77+
the_msg = MIMEMultipart("alternative")
78+
the_msg['Subject'] = "Billing Update!"
79+
the_msg["From"] = from_email
80+
the_msg["To"] = user_email
81+
part_1 = MIMEText(user_message, 'plain')
82+
the_msg.attach(part_1)
83+
email_conn.sendmail(from_email, [user_email], the_msg.as_string())
84+
email_conn.quit()
85+
except smtplib.SMTPException:
86+
print("error sending message")
87+
return True
88+
return False
89+
90+
91+
obj = MessageUser()
92+
obj.add_user("Justin", 123.32, email='hungrypy@gmail.com')
93+
obj.add_user("jOhn", 94.23, email='hungrypy@gmail.com')
94+
obj.add_user("Sean", 93.23, email='hungrypy@gmail.com')
95+
obj.add_user("Emilee", 193.23, email='hungrypy@gmail.com')
96+
obj.add_user("Marie", 13.23, email='hungrypy@gmail.com')
97+
obj.get_details()
98+
99+
obj.send_email()

Day 12/day_12_start.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import datetime
2+
3+
4+
class MessageUser():
5+
user_details = []
6+
messages = []
7+
base_message = """Hi {name}!
8+
9+
Thank you for the purchase on {date}.
10+
We hope you are exicted about using it. Just as a
11+
reminder the purcase total was ${total}.
12+
Have a great one!
13+
14+
Team CFE
15+
"""
16+
def add_user(self, name, amount, email=None):
17+
name = name[0].upper() + name[1:].lower()
18+
amount = "%.2f" %(amount)
19+
detail = {
20+
"name": name,
21+
"amount": amount,
22+
}
23+
today = datetime.date.today()
24+
date_text = '{today.month}/{today.day}/{today.year}'.format(today=today)
25+
detail['date'] = date_text
26+
if email is not None: # if email != None
27+
detail["email"] = email
28+
self.user_details.append(detail)
29+
def get_details(self):
30+
return self.user_details
31+
def make_messages(self):
32+
if len(self.user_details) > 0:
33+
for detail in self.get_details():
34+
name = detail["name"]
35+
amount = detail["amount"]
36+
date = detail["date"]
37+
message = self.base_message
38+
new_msg = message.format(
39+
name=name,
40+
date=date,
41+
total=amount
42+
)
43+
self.messages.append(new_msg)
44+
return self.messages
45+
return []
46+
47+
48+
obj = MessageUser()
49+
obj.add_user("Justin", 123.32, email='hungrypy@gmail.com')
50+
obj.add_user("jOhn", 94.23, email='hungrypy@gmail.com')
51+
obj.add_user("Sean", 93.23, email='hungrypy@gmail.com')
52+
obj.add_user("Emilee", 193.23, email='hungrypy@gmail.com')
53+
obj.add_user("Marie", 13.23, email='hungrypy@gmail.com')
54+
obj.get_details()
55+
56+
obj.make_messages()

0 commit comments

Comments
 (0)