Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 1.46 KB

File metadata and controls

43 lines (30 loc) · 1.46 KB

python-smime-email

PyPI Downloads

Generate x509 SMIME signed emails with ease!

Usage

  1. Generate the email raw content

    import smime_email
    
    data = b"Hello!"
    SMIME_KEY = smime_email.load_key("key_path.pem")
    SMIME_INTERMEDIATE = smime_email.load_certificates("intermediate_path.pem")
    SMIME_CERT = smime_email.load_certificates("cert_path.pem")[0]
    email_raw_bytes = smime_email.get_smime_attachment_content(data, SMIME_KEY, SMIME_INTERMEDIATE, SMIME_CERT)
  2. Send it using any email library you like. Here is an example as Django email backend

    email_raw_bytes = smime_email.get_smime_attachment_content(data, SMIME_KEY, SMIME_INTERMEDIATE, SMIME_CERT)
    # ...
    class EmailBackend(BaseEmailBackend):
        def send_messages(self, message) -> int:
            with smtplib.SMTP(settings.EMAIL_HOST, settings.EMAIL_PORT) as server:
                server.sendmail(message.from_email, message.to, email_raw_bytes)
            return 1

Development

The code is formatted with ruff and checked with various linters. To run the whole linting and formatting process, run uv run poe all.

License

Code and documentation copyright 2024-2025 Siemens AG.

See LICENSE.md.