initial commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import smtplib
|
||||
from email.message import EmailMessage
|
||||
|
||||
from .config import Config
|
||||
|
||||
|
||||
def _send_message(config: Config, message: EmailMessage) -> None:
|
||||
smtp_class = smtplib.SMTP_SSL if config.smtp_ssl else smtplib.SMTP
|
||||
with smtp_class(config.smtp_host, config.smtp_port, timeout=20) as smtp:
|
||||
if config.smtp_starttls and not config.smtp_ssl:
|
||||
smtp.starttls()
|
||||
if config.smtp_username:
|
||||
smtp.login(config.smtp_username, config.smtp_password)
|
||||
smtp.send_message(message)
|
||||
|
||||
|
||||
def send_verification_email(config: Config, to_email: str, verify_url: str) -> None:
|
||||
message = EmailMessage()
|
||||
message["From"] = config.smtp_from
|
||||
message["To"] = to_email
|
||||
message["Subject"] = "Verify your Sticknife account"
|
||||
message.set_content(
|
||||
"\n".join(
|
||||
[
|
||||
"Welcome to Sticknife.",
|
||||
"",
|
||||
"Verify your email address to continue:",
|
||||
verify_url,
|
||||
"",
|
||||
"If you did not request this, you can ignore this email.",
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
_send_message(config, message)
|
||||
|
||||
|
||||
|
||||
def send_password_reset_email(config: Config, to_email: str, reset_url: str) -> None:
|
||||
message = EmailMessage()
|
||||
message["From"] = config.smtp_from
|
||||
message["To"] = to_email
|
||||
message["Subject"] = "Set your Sticknife password"
|
||||
message.set_content(
|
||||
"\n".join(
|
||||
[
|
||||
"Your Sticknife account is ready.",
|
||||
"",
|
||||
"Set or reset your password here:",
|
||||
reset_url,
|
||||
"",
|
||||
"This link expires soon. If you did not request this, you can ignore this email.",
|
||||
]
|
||||
)
|
||||
)
|
||||
_send_message(config, message)
|
||||
Reference in New Issue
Block a user