Metadata-Version: 2.3
Name: email_draft_generator
Version: 0.1.1
Summary: A utility to generate E-mail drafts from a list of E-mail addresses.
Project-URL: Homepage, https://github.com/CoffeeCoder1/Email-Generator
Project-URL: Bug Reports, https://github.com/CoffeeCoder1/Email-Generator/issues
Project-URL: Source, https://github.com/CoffeeCoder1/Email-Generator
Author-email: Brandon Clague <94200657+fodfodfod@users.noreply.github.com>, Max Nargang <CoffeeCoder1@outlook.com>
Maintainer-email: Max Nargang <CoffeeCoder1@outlook.com>
License: MIT License
        
        Copyright (c) 2024 fodfodfod
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: email,email-generator,email-template,gmail
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Customer Service
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Communications :: Email :: Mailing List Servers
Requires-Python: >=3.10
Requires-Dist: google-api-python-client
Requires-Dist: google-auth-httplib2
Requires-Dist: google-auth-oauthlib
Requires-Dist: json-fix
Provides-Extra: packaging
Requires-Dist: pillow; extra == 'packaging'
Requires-Dist: pyinstaller; extra == 'packaging'
Description-Content-Type: text/markdown

# Email Generator

## Installation (PyPI)
```sh
pip3 install email-draft-generator
```

## Building from source
Install the `build` tool with pip and run `python3 -m build` to build the package.

## Usage (command line)
The utility provides two command-line binaries: `email-generator` and `email-list-parser`.

### email-generator
`email-generator` takes a JSON-formatted list of E-mail addresses and recipient names, formats them according to the template JSON, and uploads them to Gmail. To set up the Google API, run it once (you will need to provide a valid list of E-mail addresses for it to run), and it will guide you through setting this up. Most of the usage specifics are described in the usage help, which you can show by running `email-generator -h`.

### email-list-parser
`email-list-parser` takes a CSV formatted list or a newline-seperated list of values and turn it into a JSON file which can be piped into `email-generator`.

#### Text file format
The values should be formatted as follows
```
Company Name 1
e-mail@company1.com
Company Name 2
e-mail@company2.com
Company Name 3
e-mail@company3.com
...
```

#### CSV format
The CSV file should have the keys in the order `name,email`

### Template Format
The E-mail template is a JSON file with the following keys
| Key                      | Value                                            |
|--------------------------|--------------------------------------------------|
| `subject` (formatted)    | E-mail subject                                   |
| `body` (formatted)       | E-mail body                                      |
| `attachments` (optional) | Paths to any attachments that should be included |

Formatted fields can include the following variables
| Variable  | Data           |
|-----------|----------------|
| `{name}`  | Company name   |
| `{email}` | Company E-mail |

## Installation (scripts)
Download the latest release as a `tar.gz` file.

### Setup
#### Build program
Run `setup.sh` (can be run by simply double-clicking on the file).

#### Set up the template
Update the email template in `data/template.json` according to the [template format](#template-format).

#### Google API
Run the program once, and it will guide you through setting up the Google API.

## Usage (scripts)
### Prepare data
Copy and paste the table into `data/email-list.txt`.
### Run the program
Run `run.sh` (can be run by double-clicking as well)
The first time it is run, you will need to authenticate with the account that you want to upload the drafts to. A browser window should be opened automatically to do this in (if it is not, copy and paste the URL from the terminal window into your browser). The authentication flow may not work in Firefox or other Gecko-based browsers, so try Chrome, Safari, or another Chromium- or Webkit-based browser if it doesn't work for you.

## Usage (GUI)
The utility provides two GUI binaries: `email-generator-gui` and `email-template-editor-gui`. These take no command line arguments.