Skip to main content

A Simple SMTP Email Sender, powered by PyO3

Project description

simple_smtp_sender

A Simple SMTP Email Sender, powered by Rust and PyO3.

Overview

This project provides a Python extension module implemented in Rust for sending emails via SMTP, including support for attachments, CC, and BCC. It leverages the performance and safety of Rust, exposes a convenient Python API, and is built using PyO3 and lettre.

Features

  • Send emails via SMTP from Python
  • Support HTML email contents
  • Attach files to emails
  • Support for CC and BCC
  • Secure authentication
  • Easy configuration via Python class

Installation

from PyPI

pip install simple_smtp_sender

from source (requires Rust toolchain and maturin)

git clone https://github.com/guangyu-he/simple_smtp_sender.git
cd simple_smtp_sender
# prepare venv and maturin if needed
maturin build

Requirements

  • Python >= 3.10
  • Rust toolchain (for building)

Usage

from simple_smtp_sender import EmailConfig, send_email

config = EmailConfig(
    server="smtp.example.com",
    sender_email="your@email.com",
    username="your_username",
    password="your_password",
)

send_email(
    config,
    recipient="recipient@email.com",
    subject="Test Email",
    body="Hello from Rust!",
)

# With attachment, CC, and BCC:
send_email(
    config,
    recipient="recipient@email.com",
    subject="With Attachment",
    body="See attached file.",
    cc="cc@email.com",
    bcc="bcc@email.com",
    attachment="/path/to/file.pdf",
)

API

EmailConfig

Configuration class for SMTP server and credentials.

  • server: SMTP server URL
  • sender_email: Sender's email address
  • username: SMTP username
  • password: SMTP password

send_email(config, recipient, subject, body, cc=None, bcc=None, attachment=None)

Sends an email using the provided configuration.

  • config: EmailConfig instance
  • recipient: Recipient's email
  • subject: Email subject
  • body: Email body
  • cc: CC recipient (optional)
  • bcc: BCC recipient (optional)
  • attachment: Path to file to attach (optional)

Development

  • Rust dependencies are managed in Cargo.toml.
  • Python build configuration is in pyproject.toml.
  • Main Rust logic in src/.

License

MIT

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

simple_smtp_sender-0.1.0.tar.gz (24.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

simple_smtp_sender-0.1.0-cp310-abi3-win_amd64.whl (439.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

simple_smtp_sender-0.1.0-cp310-abi3-win32.whl (425.9 kB view details)

Uploaded CPython 3.10+Windows x86

simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_i686.whl (2.9 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_armv7l.whl (2.7 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

simple_smtp_sender-0.1.0-cp310-abi3-macosx_11_0_arm64.whl (570.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

simple_smtp_sender-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl (584.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file simple_smtp_sender-0.1.0.tar.gz.

File metadata

  • Download URL: simple_smtp_sender-0.1.0.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for simple_smtp_sender-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ebdf652da040635590ad43843962c8e5a206e963e4dc9405c670e5696cc4f499
MD5 1c636139e2ab584a91405f8a99381ffc
BLAKE2b-256 15850a50294eb19c8ee02bbe4da18e9d5ee2584d7dbb93949a42e5563bf29498

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e6d6e2c9df798f6cf6fdafc3419e57828d1f32930d1831bc9261d996c0783b0d
MD5 da5953820a1b6261eb201667ab1d2ebd
BLAKE2b-256 0a1ac4448775e1f4611d42f9813fad3cd479cc6e14593f78c21813b52c8087c1

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-win32.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 fb2c5b1947f8d0a36e66bd1dd849f092803c3684de212036e8ad3c5af957cbda
MD5 fbbab3322d76a67f7f3b218e04645b42
BLAKE2b-256 e6dcff0e5ae23d33c35c3bfddc267f415986c21ddcda39424fcbab4b90c06c66

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 457e013e208c823fb6a5358c5966d82b88bf63977ade5d23ff1eef2de6b4936e
MD5 8a0c391c214f986a025eba94058504a7
BLAKE2b-256 9e704afeafafa03b564125b6850a9c7ce2e83b952f17fe88654c6773a88a796c

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 87d94315d43e84b15834d6bcad7b6ce935b244bb20b3e7b9519c7ea65a1a4e18
MD5 e023723566f23fdfef619de9709cbe81
BLAKE2b-256 7fbb3a07131eca343a94585425c29af1f7b6e5b180d5bba125e5cf231017b99d

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f497dee9c719f1a1e4ed428bc4607e3212100089df69dddf1c19d9bdae5d6562
MD5 cd69ea31e73ab2391474b12a633a5924
BLAKE2b-256 7fbf9d41068902746e499a121c5c1c412a8c56c558cd0ea3613b17c538b1ae0d

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d225e7b1856d168f27689fe0ef6aa965513bc87137962fbc2dfadb7f671f9988
MD5 27cb21128592b66b075f784112bfd932
BLAKE2b-256 8f22e7520c00ecabd730cacdd10a835a57b1cfb36efdffadf94d49b3c804ac8c

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc7d17aa5d532be658ddc57946fd313d13b0898001d261c61aba1670d7f3000e
MD5 cb43f3cb4aabee5aace610cb3fbd516f
BLAKE2b-256 1625baf5a668bdb53a54642d70c9e53bb3ac8a14d937314ba45ffce46404c256

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a66889962e2f90b86bebab8fd8b23c3ce1f6062a39dd0cb5efe1b940f3c96c2f
MD5 0884e3d1202a3c6cc165caf70fc5176d
BLAKE2b-256 9f8ab466c27a07281a545a7ea6851af6b0a4e94a8419bb008f1610de6624c4d6

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 875e415516a61114f261a1c274dcb40b3d8ff0e48293b14e74aaf002a2267c8d
MD5 619f7eaf255b8fcec2980e741d05721f
BLAKE2b-256 e1e34f549af6607037b36a7cf90d8bfad3e2683c2c4e1f6e0a2ed32c6b2cf25a

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c2a4c39537a268120612270106cd624f8fb4f945c430e2b568e351d695e59146
MD5 3f0c2af59868c625f3972e37aab3d04e
BLAKE2b-256 51b280d0c6143c00644d417de7ec970493188d8b15eb313793abdc15dfe658c8

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d005d7c9fd2792df524ae2f17523aa7a798289b9c210909df320fd307505e0ce
MD5 cd97aa44cd55f97d2ec941a85b10a06c
BLAKE2b-256 239a59164509318e92e2b3c7043fa5fcfc742092f751969ba6e02e7a44605643

See more details on using hashes here.

File details

Details for the file simple_smtp_sender-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for simple_smtp_sender-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fb2a1d95907db2dc9d6ef7991833017f6bbeba36e7a5a34f96450828e070a8b9
MD5 3af6118f1dbb517bed5eccafa4d1ef8a
BLAKE2b-256 dd137a17af1dc6f839552ac56f1ca5e0684d30bfa6cccaa8d287fcec9032000c

See more details on using hashes here.

Supported by

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