taolib.testing.email_service.template#

模板引擎层。

Submodules#

Classes#

RenderedEmail

渲染后的邮件内容。

TemplateEngine

Jinja2 沙箱模板引擎。

Package Contents#

class taolib.testing.email_service.template.RenderedEmail#

渲染后的邮件内容。

subject: str#
html_body: str#
text_body: str | None = None#
class taolib.testing.email_service.template.TemplateEngine(unsubscribe_base_url: str = '')#

Jinja2 沙箱模板引擎。

使用 SandboxedEnvironment 防止模板注入攻击。 StrictUndefined 确保缺失变量会立即报错。

_env: jinja2.Environment#
_unsubscribe_base_url = ''#
render(template_doc: taolib.testing.email_service.models.template.TemplateDocument, variables: dict, email_type: taolib.testing.email_service.models.enums.EmailType = EmailType.TRANSACTIONAL, recipient_email: str | None = None, unsubscribe_token: str | None = None) RenderedEmail#

渲染模板。

参数:
  • template_doc -- 模板文档

  • variables -- 模板变量

  • email_type -- 邮件类型

  • recipient_email -- 收件人邮箱(营销邮件需要)

  • unsubscribe_token -- 退订令牌(营销邮件需要)

返回:

渲染后的邮件内容

抛出:

TemplateRenderError -- 模板渲染失败

validate_template(template_string: str, variables: dict | None = None) list[str]#

验证模板语法。

参数:
  • template_string -- 模板字符串

  • variables -- 测试变量

返回:

错误列表,空列表表示有效

_render_string(template_string: str, variables: dict) str#

渲染单个模板字符串。

注入退订链接。