Path: blob/main/tests/docs/email/email-recipients-all-patterns-python.qmd
12925 views
---
title: Email Recipients - All Patterns (Python)
author: Jules Walzer-Goldfeld
format:
email:
email-version: 2
---
```{python}
#| echo: false
import yaml
from IPython.display import Markdown
def write_yaml_metadata_block(**kwargs):
"""Write YAML metadata block that will be parsed by Quarto."""
yaml_content = yaml.dump(
kwargs,
default_flow_style=False,
allow_unicode=True,
sort_keys=False
)
yaml_block = f"---\n{yaml_content}---\n"
return Markdown(yaml_block)
```
Test document demonstrating all recipient patterns with Python.
```{python}
# Email 1: Static inline recipients
static_recipients = ["[email protected]", "[email protected]", "[email protected]"]
```
::: {.email}
::: {.subject}
Email 1: Static Inline Recipients
:::
::: {.recipients}
`{python} static_recipients`
:::
::: {.email-text}
Text version of email with static inline recipients.
:::
First email with static inline recipients.
:::
```{python}
# Email 2: Conditional inline recipients
is_weekday = True # Fixed value for deterministic testing
if is_weekday:
conditional_recipients = ["[email protected]", "[email protected]"]
else:
conditional_recipients = ["[email protected]"]
```
::: {.email}
::: {.subject}
Email 2: Conditional Inline Recipients
:::
::: {.recipients}
`{python} conditional_recipients`
:::
::: {.email-text}
Text version of conditional recipients email.
:::
Second email with conditional inline recipients.
:::
```{python}
#| output: asis
# Email 3: Metadata attribute pattern
metadata_recipients = ["[email protected]", "[email protected]"]
write_yaml_metadata_block(metadata_recipients=metadata_recipients)
```
::: {.email recipients=metadata_recipients}
::: {.subject}
Email 3: Metadata Attribute Pattern
:::
::: {.email-text}
This email uses the metadata attribute pattern.
:::
Third email using metadata attribute pattern.
:::
```{python}
#| output: asis
# Email 4: Conditional metadata attribute pattern
is_admin = True # Fixed for testing
if is_admin:
admin_recipients = ["[email protected]", "[email protected]"]
else:
admin_recipients = ["[email protected]"]
write_yaml_metadata_block(admin_recipients=admin_recipients)
```
::: {.email recipients=admin_recipients}
::: {.subject}
Email 4: Conditional Metadata Attribute
:::
::: {.email-text}
This email uses conditional metadata attribute pattern.
:::
Fourth email using conditional metadata attribute pattern.
:::