Files
Aislo/common_util/common_util_email_templates.py
T

71 lines
2.7 KiB
Python

"""Aislo 인증·조직 알림 이메일 템플릿."""
from html import escape
def otp_email(code: str, purpose: str) -> tuple[str, str]:
safe_code = escape(code)
safe_purpose = escape(purpose)
subject = f"[Aislo] {purpose} 인증 코드"
html = (
"<h2>Aislo 이메일 인증</h2>"
f"<p>{safe_purpose} 인증 코드는 다음과 같습니다.</p>"
f"<p style='font-size:28px;font-weight:700;letter-spacing:6px'>{safe_code}</p>"
"<p>코드는 5분 동안 유효합니다.</p>"
)
return subject, html
def join_request_email(member_name: str, member_email: str) -> tuple[str, str]:
subject = "[Aislo] 신규 팀원 가입 승인 요청"
html = (
"<h2>팀원 가입 승인 요청</h2>"
f"<p>{escape(member_name)} ({escape(member_email)}) 님이 회사 가입을 요청했습니다.</p>"
"<p>Aislo 마스터 화면에서 승인 또는 거부해 주세요.</p>"
)
return subject, html
def join_result_email(approved: bool) -> tuple[str, str]:
result = "승인" if approved else "거부"
return f"[Aislo] 가입 요청 {result}", f"<p>회사 가입 요청이 {result}되었습니다.</p>"
def security_alert_email(email: str, failures: int) -> tuple[str, str]:
return (
"[Aislo] 반복 로그인 실패 경고",
f"<p>{escape(email)} 계정에서 로그인 실패가 {failures}회 발생했습니다.</p>",
)
def support_request_email(
name: str,
email: str,
phone: str | None,
company_name: str | None,
subject: str,
message: str,
) -> tuple[str, str]:
# 제목: 회사명이 있으면 [회사명 · 이름], 없으면 [이름]
who = f"{company_name} · {name}" if company_name else name
subject_text = f"[Aislo 문의|{escape(who)}] {escape(subject)}"
# 줄바꿈을 <br>로 변환하여 본문 가독성 유지
safe_message = escape(message).replace("\n", "<br>")
company_row = f"<p><strong>회사:</strong> {escape(company_name)}</p>" if company_name else ""
phone_row = f"<p><strong>연락처:</strong> {escape(phone)}</p>" if phone else ""
html = (
"<h2>새 기술지원 문의가 접수되었습니다</h2>"
f"{company_row}"
f"<p><strong>이름:</strong> {escape(name)}</p>"
f"<p><strong>이메일:</strong> {escape(email)}</p>"
f"{phone_row}"
f"<p><strong>제목:</strong> {escape(subject)}</p>"
"<hr>"
f"<p><strong>문의 내용:</strong></p><p>{safe_message}</p>"
"<hr>"
f"<p>답변은 위 이메일 주소(<a href='mailto:{escape(email)}'>"
f"{escape(email)}</a>)로 회신하세요.</p>"
)
return subject_text, html