Skip to main content

A simple CLI for sending form related mails in the context of Open Data Kit (ODK)

Project description

ODK Mailer

A simple CLI to send Mails for ODK. Built with Typer and packaged with Poetry.

Requirements

  • Python 3
  • PIP

Setup

Install the cli via pip

pip install odk-mailer

Configuration example Config location: ~/.odk-mailer/config.json:

{
        "smtp_host": "smtp.freesmtpservers.com",
        "smtp_port": "25",
        "smtp_user": "optional",
        "smtp_pass": "optional",

        "odk_host":"https://your.odk-central.host.tld",
}

Usage

Create and run a new mail job

    # Create a new mail job with a unique ID
    odk-mailer create

    # Run the job by ID
    odk-mailer run <job-id>

List mail jobs and evaluate them

    # Show all jobs
    odk-mailer list

    # Run all jobs that are ready to be sent
    odk-mailer evaluate

CLI Design

Create

odk-mailer-flow

Features > commands

create a mail job

  • Read a recipients CSV list, validate input
  • Define field from available headers to be used for email sending, validate email addresses
  • Read message content from stdin
  • Support data templating with format
  • Read message content from file
  • Add reminders for a mail task, using ODK API, http-lib
  • Send mail manually or schedule for the future; smtp, python-crontab

list mail jobs

  • Show available mail tasks (that are stored in the local db)

delete mail jobs

  • delete mail job by id

check connection

  • give instant feedback about connectivity to SMTP and API endpoints

Development

Building a Package - Guide: https://typer.tiangolo.com/tutorial/package/#create-your-app

Requirements

  • Python 3.10
  • Poetry 1.7
    # clone the repo and cd into
    poetry shell
    poetry install
    # Run it with
    poetry run odk-mailer 

Push to PyPi

    poetry build
    poetry publish
    # requires credentials to be setup: poetry config pypi-token.pypi <my-token>

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

odk_mailer-0.2.6.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

odk_mailer-0.2.6-py3-none-any.whl (20.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page