Send an email using the specified settings to notify a new OAuth signup.
Source code in fractal_server/app/security/signup_email.py
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 | def mail_new_oauth_signup(msg: str, email_settings: MailSettings):
"""
Send an email using the specified settings to notify a new OAuth signup.
"""
mail_msg = EmailMessage()
mail_msg.set_content(msg)
mail_msg["From"] = formataddr(
(email_settings.sender, email_settings.sender)
)
mail_msg["To"] = ", ".join(
[
formataddr((recipient, recipient))
for recipient in email_settings.recipients
]
)
mail_msg[
"Subject"
] = f"[Fractal, {email_settings.instance_name}] New OAuth signup"
with smtplib.SMTP(
email_settings.smtp_server, email_settings.port
) as server:
server.ehlo()
if email_settings.use_starttls:
server.starttls()
server.ehlo()
if email_settings.use_login:
password = (
Fernet(email_settings.encryption_key)
.decrypt(email_settings.encrypted_password)
.decode("utf-8")
)
server.login(user=email_settings.sender, password=password)
server.sendmail(
from_addr=email_settings.sender,
to_addrs=email_settings.recipients,
msg=mail_msg.as_string(),
)
|