Skip to main content

A postman helps you to send cold mails

Project description

cold-postman

cold_postman is a marketing tool to help users write cold mails in markdown and send them via a manageable csv file.

Installation

pip install cold_postman

Initialize the config

python -m cold_postman init db 
python -m cold_postman init config 

About config.yaml

batch_num: 10 # mails sent per batch
password: ''  # password 
smtp_port: 587 # port
smtp_server: smtp.example.com # smtp server
user: 'example@example.com' # user mail
from: 'Mr.Example' 
unsubscribe:
  link: mailto:example@example.com # The link for List-Unsubscibe.
  subject: Unsubscribe # The subject if is a mailto link.
  message: I'd like to unsubscribe. # Default message of the mail.
alter_name: '' # The alternative name if blank in first_name + last_name. 

About control csv

Control csv is the receiver list. Columns decribed as below:

  • first_name: First name of the receiver.
  • last_name: Last name of the receiver.
  • email: Receiver's mail address.
  • last_sent: Timestamp of last contact.
  • enabled: (int) [1, 0], 1=enabled. 0=disabled, which will be skiped while executing.

Send Mail

Command to start the sending task:

# usage: __main__.py [-h] [-c CONFIG] [-d CRMDB] -m MESSAGE -t TITLE -s SIGNATURE [-a ATTACH]

# options:
#   -h, --help            show this help message and exit
#   -c CONFIG, --config CONFIG
#                         (Filepath) The file path of the config.
#   -d CRMDB, --crmdb CRMDB
#                         (Filepath) The file path of the crm DB.
#   -m MESSAGE, --message MESSAGE
#                         (Filepath) REQUIRED. The email content in markdown.
#   -t TITLE, --title TITLE
#                         (str) REQUIRED. The email title
#   -s SIGNATURE, --signature SIGNATURE
#                         (Filepath) REQUIRED. The signature in markdown
#   -a ATTACH, --attach ATTACH
#                         (Filepath) The attachment. 
#   -u UNSUBSCRIBE, --unsubscribe UNSUBSCRIBE
#                         (Bool) [True, False] Enable a unsubscribe link. Default=True
#   -i INTERVAL, --interval INTERVAL
#                         (Int) Interval (secs) between batchs. Default=10
python -m cold_postman -m message.md -t 'Subject of the Mail' -s signature.md -a attachment.zip

Prepare a markdown content

The markdown content is converted to rtf via markdown2, which supports all the stardard syntax.

The image wrapped in inline has to be written as following syntax.

![image_cid](file_path.png)

The alternative description will be applied as a cid in rtf, so please name it carefully and DO NOT be duplicated. To prevent from missing image, an absolute file path is recommended for attached image.

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

cold_postman-0.1.8.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

cold_postman-0.1.8-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file cold_postman-0.1.8.tar.gz.

File metadata

  • Download URL: cold_postman-0.1.8.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.13 Darwin/22.6.0

File hashes

Hashes for cold_postman-0.1.8.tar.gz
Algorithm Hash digest
SHA256 215bc258d25f7acd0d805d339f379a3307e3c62f76fa45e8c82625aafafc6de5
MD5 c1f86e5c62244b76b1321b098696a385
BLAKE2b-256 ba406fea884621ffd860dc46ed4b945a5d0ebf8f61d4a653083ba51a40cc3604

See more details on using hashes here.

Provenance

File details

Details for the file cold_postman-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: cold_postman-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.13 Darwin/22.6.0

File hashes

Hashes for cold_postman-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 4442064f3592cb485eea990934fd27be8179c89f18a8a2a2f619baf375d7b6c7
MD5 3bcbea1361bedfa3d8c552b45333e63f
BLAKE2b-256 d994022d84cb51142a5d63d2aace2f4a6c9cdef1d86828a69f4f89c9e7742f88

See more details on using hashes here.

Provenance

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