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. 
sending_limits: # [Optional], Volume of sending limits. Please refer to the smtp provider. 
  warning: 100  # [Optional], Warn on every N MB has sent. Default=100.
  pause: 280 # [Optional], paused job on N MB has sent. Defaul=290. 

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.9.tar.gz (9.4 kB view hashes)

Uploaded Source

Built Distribution

cold_postman-0.1.9-py3-none-any.whl (10.0 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