Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quarto-dev
GitHub Repository: quarto-dev/quarto-cli
Path: blob/main/tests/docs/email/email-recipients-all-patterns-python.qmd
12921 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.

:::