Metadata-Version: 2.4
Name: assets-email-connector
Version: 0.1.0
Summary: Enterprise Email Connector for Assets
Home-page: https://github.com/TYN-NIFO/assets-email-connector
Author: Enterprise Development Team
License: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: msal>=1.20.0
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Enterprise Email Connector for Assets

An enterprise-grade Python library for securely connecting to and processing email assets. It supports IMAP connections over SSL, and modern authentication methods like OAuth2 (XOAUTH2) using MSAL.

## Features

- **Secure Connection:** Connect securely to IMAP servers (e.g., Office365, Gmail) over SSL.
- **Modern Authentication:** Support for traditional username/password or Azure OAuth2 (Client ID, Secret, and Tenant ID).
- **Email Fetching:** Fetch emails based on IMAP search criteria.
- **Robust Parsing:** Safely parses raw emails and extracts subjects and plain text bodies.

## Installation

You can install the connector from PyPI:

```bash
pip install assets-email-connector
```

## Usage

### Basic Usage with Password Authentication

```python
from assets_email_connector import EnterpriseEmailConnector

connector = EnterpriseEmailConnector(
    host="imap.example.com",
    username="user@example.com",
    password="securepassword"
)

if connector.connect():
    emails = connector.fetch_emails(mailbox="inbox", search_criteria="ALL")
    print(f"Fetched {emails['total_emails']} emails.")
    for email in emails["emails"]:
        print(f"Subject: {email['subject']}")
    
    connector.disconnect()
```

### Advanced Usage with OAuth2 (Azure Active Directory)

```python
from assets_email_connector import EnterpriseEmailConnector

connector = EnterpriseEmailConnector(
    host="outlook.office365.com",
    username="user@example.com",
    tenant_id="your-tenant-id",
    client_id="your-client-id",
    client_secret="your-client-secret"
)

if connector.connect():
    emails = connector.fetch_emails()
    print(f"Fetched {emails['total_emails']} emails.")
    connector.disconnect()
```

## Requirements
- Python 3.8+
- `msal >= 1.20.0`
