swecc-email-sender


Nameswecc-email-sender JSON
Version 1.0.6 PyPI version JSON
download
home_pageNone
SummaryA production-ready email automation library using SendGrid
upload_time2025-02-28 06:09:55
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords automation email markdown sendgrid
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SWECC Email Sender

An email automation library using SendGrid API. Supports both single and batch email sending with Markdown formatting and template substitution.

## Features

- Single and batch email sending
- Markdown to HTML conversion with styling
- Template substitution support
- CSV and JSON data source support
- Preview and validation modes

## Installation

```bash
pip install swecc-email-sender
```

## Quick Start

### Single Email

```python
from swecc_email_sender import EmailSender

sender = EmailSender()  # uses SENDGRID_API_KEY environment variable
success = sender.send_email(
    to_email="recipient@example.com",
    subject="Hello!",
    content="This is a test email",
    from_email="sender@example.com"
)
```

### Markdown Email

```python
success = sender.send_email(
    to_email="recipient@example.com",
    subject="Hello!",
    content="# Hello World\n\nThis is a **markdown** email",
    from_email="sender@example.com",
    is_markdown=True
)
```

### Template Email

```python
template = """
Hello {name}!

Your order #{order_id} has been shipped to:
{address}

Thank you for your business!
"""

success = sender.send_email(
    to_email="customer@example.com",
    subject="Order #{order_id} Shipped",
    content=template,
    from_email="shop@example.com",
    template_data={
        "name": "John Doe",
        "order_id": "12345",
        "address": "123 Main St, City, Country"
    }
)
```

## Command Line Interface

The package includes a command-line interface for easy use:

```bash
# Single email
swecc-email-sender --from sender@example.com --to recipient@example.com --subject "Hello" --content "Test email"

# Markdown email
swecc-email-sender --from sender@example.com --to recipient@example.com --subject "Hello" --content "# Hello" --markdown

# Template with CSV data
swecc-email-sender --from sender@example.com --src recipients.csv --subject "Hello {name}" --template email.md

# Preview first email
swecc-email-sender --from sender@example.com --src data.json --subject "Hello" --template email.md --preview

# Validate templates
swecc-email-sender --from sender@example.com --src data.json --subject "Hello {name}" --template email.md --validate
```

### Data File Formats

#### CSV Example (recipients.csv)
```csv
to_email,name,order_id,address
customer1@example.com,John Doe,12345,123 Main St
customer2@example.com,Jane Smith,12346,456 Oak Ave
```

#### JSON Example (data.json)
```json
[
  {
    "to_email": "customer1@example.com",
    "name": "John Doe",
    "order_id": "12345",
    "address": "123 Main St"
  },
  {
    "to_email": "customer2@example.com",
    "name": "Jane Smith",
    "order_id": "12346",
    "address": "456 Oak Ave"
  }
]
```

## Development

### Setup

1. Clone the repository:
```bash
git clone https://github.com/swecc/swecc-email-sender.git
cd swecc-email-sender
```

2. Create a virtual environment and install dependencies:
```bash
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e ".[dev]"
```

### Running Tests

```bash
pytest
```

### Code Style

The project uses:
- Black for code formatting
- isort for import sorting
- mypy for type checking
- flake8 for linting

To run all checks:

```bash
ruff --fix
isort .
mypy swecc_email_sender
flake8 swecc_email_sender
```

## License

This project is licensed under the MIT License - see the LICENSE file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "swecc-email-sender",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "automation, email, markdown, sendgrid",
    "author": null,
    "author_email": "SWECC <info@swecc.org>",
    "download_url": "https://files.pythonhosted.org/packages/4c/c8/e9926abb423e8f584b6b20abfbd69eb56337227aad69da39dca1aec11fa3/swecc_email_sender-1.0.6.tar.gz",
    "platform": null,
    "description": "# SWECC Email Sender\n\nAn email automation library using SendGrid API. Supports both single and batch email sending with Markdown formatting and template substitution.\n\n## Features\n\n- Single and batch email sending\n- Markdown to HTML conversion with styling\n- Template substitution support\n- CSV and JSON data source support\n- Preview and validation modes\n\n## Installation\n\n```bash\npip install swecc-email-sender\n```\n\n## Quick Start\n\n### Single Email\n\n```python\nfrom swecc_email_sender import EmailSender\n\nsender = EmailSender()  # uses SENDGRID_API_KEY environment variable\nsuccess = sender.send_email(\n    to_email=\"recipient@example.com\",\n    subject=\"Hello!\",\n    content=\"This is a test email\",\n    from_email=\"sender@example.com\"\n)\n```\n\n### Markdown Email\n\n```python\nsuccess = sender.send_email(\n    to_email=\"recipient@example.com\",\n    subject=\"Hello!\",\n    content=\"# Hello World\\n\\nThis is a **markdown** email\",\n    from_email=\"sender@example.com\",\n    is_markdown=True\n)\n```\n\n### Template Email\n\n```python\ntemplate = \"\"\"\nHello {name}!\n\nYour order #{order_id} has been shipped to:\n{address}\n\nThank you for your business!\n\"\"\"\n\nsuccess = sender.send_email(\n    to_email=\"customer@example.com\",\n    subject=\"Order #{order_id} Shipped\",\n    content=template,\n    from_email=\"shop@example.com\",\n    template_data={\n        \"name\": \"John Doe\",\n        \"order_id\": \"12345\",\n        \"address\": \"123 Main St, City, Country\"\n    }\n)\n```\n\n## Command Line Interface\n\nThe package includes a command-line interface for easy use:\n\n```bash\n# Single email\nswecc-email-sender --from sender@example.com --to recipient@example.com --subject \"Hello\" --content \"Test email\"\n\n# Markdown email\nswecc-email-sender --from sender@example.com --to recipient@example.com --subject \"Hello\" --content \"# Hello\" --markdown\n\n# Template with CSV data\nswecc-email-sender --from sender@example.com --src recipients.csv --subject \"Hello {name}\" --template email.md\n\n# Preview first email\nswecc-email-sender --from sender@example.com --src data.json --subject \"Hello\" --template email.md --preview\n\n# Validate templates\nswecc-email-sender --from sender@example.com --src data.json --subject \"Hello {name}\" --template email.md --validate\n```\n\n### Data File Formats\n\n#### CSV Example (recipients.csv)\n```csv\nto_email,name,order_id,address\ncustomer1@example.com,John Doe,12345,123 Main St\ncustomer2@example.com,Jane Smith,12346,456 Oak Ave\n```\n\n#### JSON Example (data.json)\n```json\n[\n  {\n    \"to_email\": \"customer1@example.com\",\n    \"name\": \"John Doe\",\n    \"order_id\": \"12345\",\n    \"address\": \"123 Main St\"\n  },\n  {\n    \"to_email\": \"customer2@example.com\",\n    \"name\": \"Jane Smith\",\n    \"order_id\": \"12346\",\n    \"address\": \"456 Oak Ave\"\n  }\n]\n```\n\n## Development\n\n### Setup\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/swecc/swecc-email-sender.git\ncd swecc-email-sender\n```\n\n2. Create a virtual environment and install dependencies:\n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npip install -e \".[dev]\"\n```\n\n### Running Tests\n\n```bash\npytest\n```\n\n### Code Style\n\nThe project uses:\n- Black for code formatting\n- isort for import sorting\n- mypy for type checking\n- flake8 for linting\n\nTo run all checks:\n\n```bash\nruff --fix\nisort .\nmypy swecc_email_sender\nflake8 swecc_email_sender\n```\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A production-ready email automation library using SendGrid",
    "version": "1.0.6",
    "project_urls": {
        "Bug Tracker": "https://github.com/swecc-uw/swecc-email-sender/issues",
        "Documentation": "https://github.com/swecc-uw-uw/swecc-email-sender#readme",
        "Homepage": "https://github.com/swecc-uw/swecc-email-sender",
        "Repository": "https://github.com/swecc-uw-uw/swecc-email-sender.git"
    },
    "split_keywords": [
        "automation",
        " email",
        " markdown",
        " sendgrid"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "312f1cdcbcb42246edeb3a293b7c5a852ec232145de66901c9de466bb0d47466",
                "md5": "8ca05dec1bdef01be6fa116575fb3366",
                "sha256": "dbb253c1258ee10f0278cf24a425ee12853fd7cf27c8bb1ee989afdb80a83985"
            },
            "downloads": -1,
            "filename": "swecc_email_sender-1.0.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8ca05dec1bdef01be6fa116575fb3366",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10177,
            "upload_time": "2025-02-28T06:09:53",
            "upload_time_iso_8601": "2025-02-28T06:09:53.628369Z",
            "url": "https://files.pythonhosted.org/packages/31/2f/1cdcbcb42246edeb3a293b7c5a852ec232145de66901c9de466bb0d47466/swecc_email_sender-1.0.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4cc8e9926abb423e8f584b6b20abfbd69eb56337227aad69da39dca1aec11fa3",
                "md5": "fa0a8e810f171ddba54a3e64a139394f",
                "sha256": "a17ef66ba52804b529045de2b337d9698a29d6853c9a80f28b68a3041fe39d0b"
            },
            "downloads": -1,
            "filename": "swecc_email_sender-1.0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "fa0a8e810f171ddba54a3e64a139394f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12013,
            "upload_time": "2025-02-28T06:09:55",
            "upload_time_iso_8601": "2025-02-28T06:09:55.134675Z",
            "url": "https://files.pythonhosted.org/packages/4c/c8/e9926abb423e8f584b6b20abfbd69eb56337227aad69da39dca1aec11fa3/swecc_email_sender-1.0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-28 06:09:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "swecc-uw",
    "github_project": "swecc-email-sender",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "swecc-email-sender"
}
        
Elapsed time: 0.42584s