Skip to content

Commit 3fefc26

Browse files
add smtp server (Jackiebibili#11)
* add notification to user * wrap into function * fix error - move smtp to global * clean code * refactor * add send_email * refine smtp code Co-authored-by: Jack Li <[email protected]>
1 parent f9a30d9 commit 3fefc26

File tree

4 files changed

+50
-1
lines changed

4 files changed

+50
-1
lines changed

apps/.DS_Store

6 KB
Binary file not shown.

apps/pushnotification/constants.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from ...secret import MAILER_PW
2+
3+
port = 465 # For starttls
4+
smtp_server = "smtp.gmail.com"
5+
sender_email = "[email protected]"
6+
subject = "Message from Ticketmaster Ticket Tracker"
7+
app_password = MAILER_PW

apps/pushnotification/smtp.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from smtplib import SMTP_SSL
2+
from ssl import create_default_context
3+
from email.message import EmailMessage
4+
from . import constants
5+
6+
7+
def init_server():
8+
context = create_default_context()
9+
server = SMTP_SSL(constants.smtp_server, constants.port, context=context)
10+
return server
11+
12+
13+
def server_login(server: SMTP_SSL, password: str):
14+
return server.login(constants.sender_email, password)
15+
16+
17+
def auth_server(server: SMTP_SSL):
18+
server_login(server, constants.app_password)
19+
20+
21+
server = init_server()
22+
# auth_server(server)
23+
24+
25+
def server_send_email(server: SMTP_SSL, receiver_emails: list[str], message: str):
26+
em = EmailMessage()
27+
em['From'] = constants.sender_email
28+
em['To'] = receiver_emails
29+
em['subject'] = constants.subject
30+
31+
em.set_content(message)
32+
return server.sendmail(constants.sender_email, receiver_emails, em.as_string())
33+
34+
35+
def send_email(receiver_emails: list[str], message: str):
36+
try:
37+
err = server_send_email(server, receiver_emails, message)
38+
if err is not None:
39+
raise Exception('could not send email to the receiver')
40+
except Exception as ex:
41+
print(ex)

secret.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
import os
22

3-
CONN_SRV = os.environ.get('CONN_SRV')
3+
CONN_SRV = os.environ.get('CONN_SRV')
4+
MAILER_PW = os.environ.get('MAILER_PW', '')

0 commit comments

Comments
 (0)