Skip to main content

A user-friendly Python email toolkit

Project description

Documentation Status

A user-friendly Python email toolkit

Installation

python3 -m pip install mailkit

Usage on CMD

Usage: python -m mailkit.bin.main [OPTIONS] COMMAND [ARGS]...

  A user-friendly Python email toolkit

Options:
  --version              Show the version and exit.
  -H, --host TEXT        SMTP server hostname or IP address
  -P, --port INTEGER     SMTP server port
  -u, --username TEXT    SMTP server username
  -p, --password TEXT    SMTP server password
  -s, --use-ssl BOOLEAN  Use SSL connection  [default: True]
  -t, --timeout INTEGER  SMTP server timeout  [default: 10]
  -e, --env-file TEXT    The environment file to load  [default: ~/.mailkit.env]
  -h, -?, --help         Show this message and exit.

Commands:
  config  initialize the configuration file
  send    send email to user(s)

mailkit config

Usage: python -m mailkit.bin.main config [OPTIONS]

  initialize the configuration file

Options:
  -s, --show      show the current configuration
  -?, -h, --help  Show this message and exit.


mailkit config
# flowing the instruction to complete the configuration
"
>>> SMTP host: smtp.exmail.qq.com
>>> SMTP port [465]: 
>>> SMTP username: suqingdong@novogene.com
>>> SMTP password: 
>>> SMTP use ssl [True]: 
>>> SMTP timeout [10]: 
login success.
Saved configuration to ~/.mailkit.env
"

# you can also use envernment variables
export SMTP_HOST=smtp.gmail.com
export SMTP_PORT=465
export SMTP_USERNAME=suqingdong@gmail.com
export SMTP_PASSWORD=YOUR_PASSWORD
export SMTP_USE_SSL=True
export SMTP_TIMEOUT=10

mailkit send

Usage: python -m mailkit.bin.main send [OPTIONS]

  send email to user(s)

Options:
  -f, --from-addr TEXT     the display address of the sender, default is the login username
  -t, --to-addrs TEXT      the recipient address(es)  [required]
  -s, --subject TEXT       the subject of the email  [required]
  -b, --body TEXT          the body of the email
  -a, --attachments TEXT   the attachments of the email
  -C, --charset TEXT       the charset of the email  [default: utf-8]
  -c, --content-type TEXT  the content type of the email, eg.: plain, html [default: plain]
  -cc, --cc TEXT           the cc address(es)
  -bcc, --bcc TEXT         the bcc address(es)
  -h, -?, --help           Show this message and exit.


# Examples:

# basic usage
mailkit send -t "to@example.com" -s "subject" -b "body"

# use charset
mailkit send -t "to@example.com" -s "subject" -b "body" -C "gbk"

# use content-type
mailkit send -t "to@example.com" -s "subject" -b "<h1>body</h1>" -C "utf-8" -c "html"

# use cc and bcc
mailkit send -t "to@example.com" -s "subject" -b "body" -cc "cc@example.com" -bcc "bcc@example.com"

# use attachments
mailkit send -t "to@example.com" -s "subject" -b "body" -a "attachment.txt"

# multiple parameters
mailkit send -t "to_1@example.com" -t "to_2@example.com" -s "subject" -b "body" -a "attachment.txt" -a "attachment_2.txt"

# auth with parameters
mailkit -H smtp.gmail.com -u username@gmail.com -p password send -t "to@example.com" -s "subject" -b "body"

# auth with an env_file
mailkit -e .env send -t "to@example.com" -s "subject" -b "body"

Usage in Python

from mailkit.core import SendEmail

mail = SendEmail()

# basic usage
mail.send('to@example.com', 'subject', 'body')

# use content-type
mail.send('to@example.com', 'subject', '<h1>body</h1>', content_type='html')

# use attachments
mail.send('to@example.com', 'subject', 'body', attachments=['attachment.txt'])

# close the connection
mail.close()

# use with mode
with SendEmail() as mail:
    mail.send('to@example.com', 'subject', 'body')


# auth with env_file
mail = SendEmail(_env_file='.env')


# auth wiht environtment variables
import os
os.environ['SMTP_HOST'] = 'smtp.gmail.com'
os.environ['SMTP_PORT'] = 465
os.environ['SMTP_USERNAME'] = 'username@gmail.com'
os.environ['SMTP_PASSWORD'] = 'password'
os.environ['SMTP_USE_SSL'] = True
os.environ['SMTP_TIMEOUT'] = 10
mail = SendEmail()

mailkit.core.SendEmail

class SendEmail(mailkit.core.smtp.config.SmtpConfig)
 |  SendEmail(_case_sensitive: 'bool | None' = None,_env_prefix: 'str | None' = None, _env_file: 'DotenvType | None' = PosixPath('.'), _env_file_encoding: 'str | None' = None, _env_nested_delimiter: 'str | None' = None, _secrets_dir: 'str | Path | None' = None, *, host: str, port: Union[int, NoneType] = None, username: str, password: str, use_ssl: bool = True, use_tls: bool = False, timeout: int = 10) -> None
 |  
 |  send(from_addr: str, to_addrs: Union[str, List[str]], subject: str, body: str = '', content_type: str = 'plain', charset: str = 'utf-8', cc: Union[str, List[str]] = '', bcc: Union[str, List[str]] = '', attachments: Union[str, List[str], NoneType] = None) -> None
 |  
 |  close(self)
 |  
 |  login(self)
 |  
 |  model_dump(self, *, mode: "Literal[('json', 'python')] | str" = 'python', include: 'IncEx' = None, exclude: 'IncEx' = None, by_alias: 'bool' = False, exclude_unset: 'bool' = False, exclude_defaults: 'bool' = False, exclude_none: 'bool' = False, round_trip: 'bool' = False, warnings: 'bool' = True) -> 'dict[str, Any]'

Documents

https://mailkit.readthedocs.io/

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

mailkit-1.0.2.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

mailkit-1.0.2-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file mailkit-1.0.2.tar.gz.

File metadata

  • Download URL: mailkit-1.0.2.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.8

File hashes

Hashes for mailkit-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a4ae4715cd8d6cf5320a9ddb244a45bd942e777e43ccd6af1ecd0354e7ca0032
MD5 fdda45d73596b6b0f87f648a5f92b919
BLAKE2b-256 9992580bf522d9cb19d2dfadf75bab3bdfa8caca206dda88e8a7ab9babcdeb6a

See more details on using hashes here.

File details

Details for the file mailkit-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: mailkit-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.8

File hashes

Hashes for mailkit-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e1853e31b90d09592b34b8b5978556026903e623606408a260ae7db3bae450f7
MD5 d511aa7a0d4985ac79f6f55c0257d74f
BLAKE2b-256 54e81734f548f98c8d666b01ae5050f047c962e7f7848773c932e8f60c402840

See more details on using hashes here.

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