Skip to main content

Package to integrate different email services with your application in just three lines of code.

Project description

Email Service

Python package to quickly integrate different email services with your Application with just 3 lines of code.

pypi python license black GitHub Release GitHub stars GitHub forks


Send Your email without caring about the backend code.

Install it with pip

pip install email-service

Email Integration

Save the API_KEY in the .env file as

SENDGRID_API_KEY=api_key

Import EmailHandler

from email_service.email_handler import EmailHandler

Form the dictionary of data

data = {
    "from_email": "Name WithSpace <from_email@gmail.com>",  # Required
    "subject": "This is the test for the Individual email", # Required
    "reply_to_addresses": "email1@gmail.com",  
    "html_body": "<h1>Email Template for Individual email</h1>",    # Either of html_body or text_body is required
    "text_body": "Email Template for Individual email",
    "to_for_bulk": [{"name": "Name", "email": "email@gmail.com"},], # Required for Bulk Email
    "receipients": {
        "to": [{"name": "name1", "email": "email1@gmail.com"},],    # Required
        "cc": [{"name": "name2", "email": "email2@google.com"},],   
        "bcc": [{"name": "name3", "email": "email3@google.com"},],
    },
    "attachments": [
        "file_path (pdf)", "calender invite (ics)", "image_path (png/jpg/jpeg)"
    ]
}

Send the email

# For Individual Email
send_email = EmailHandler()

# For Bulk Email
send_email = EmailHandler(email_type="BULK")

Sendgrid Integration

# Send it using sendgrid
response = send_email.sendgrid(data)

Response

status_code:
    202: OK,
    400: Error
message: Error or Success Message

Development

Setup

GitHub code size in bytes GitHub repo size

  1. Clone the repository

    git clone https://github.com/ramanaditya/email-service
    
  2. Create a virtual environment using virtualenv or venv.

    python -m venv venv 
    source venv/bin/activate
    
  3. Upgrade pip

    python -m pip install --upgrade pip
    
  4. Install python packages

    python -m pip install -r requirements.txt
    
  5. Create new Branch from develop branch

    git checkout -b develop origin/develop
    git checkout -b feature_branch
    
  6. Generating distribution archives

    # Downloading latest version of setuptools
    python -m pip install --user --upgrade setuptools wheel
    
    python setup.py sdist bdist_wheel
    
  7. Uploading to Test PyPI

    # Upload to Test PyPI https://test.pypi.org/ 
    python -m twine upload --repository testpypi dist/*
    
  8. Download the package

    python -m pip install -i https://test.pypi.org/simple/ email-service
    
  9. Check against the code

    # Edit the file inside /example to have some valid data
    # export SENDGRID_API_KEY before running the script
    python individual_email.py  # For individual email
    python bulk.py  # For bulk email
    
  10. Push the Code

    git add file_which_was_changed
    git commit -m "Commit Message"
    git push -u origin feature_branch
    

Issues

GitHub issues PRs Welcome GitHub last commit

  1. Integrating Mailgun
  2. Integrating Amazon SES

NOTE: Feel free to open issues. Make sure you follow the Issue Template provided.

Contribution Guidelines

GitHub pull requests GitHub contributors

  • Write clear meaningful git commit messages (Do read this).

  • Make sure your PR's description contains GitHub's special keyword references that automatically close the related issue when the PR is merged. (Check this for more info)

  • When you make very very minor changes to a PR of yours (like for example fixing a text in button, minor changes requested by reviewers) make sure you squash your commits afterward so that you don't have an absurd number of commits for a very small fix. (Learn how to squash at here)

  • Please follow the PR Template to create the PR.

  • Always open PR to develop branch.

  • Please read our Code of Conduct.

  • Refer this for more.

If you like this repository, support it by star :star2:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

email-service-1.0.0.tar.gz (10.4 kB view hashes)

Uploaded source

Built Distribution

email_service-1.0.0-py3-none-any.whl (9.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page