This release is a pre-release and may not be stable for production use.
node-wire-smtp
SMTP connector for Node Wire. Lets an agent or app send email through a relay that is pinned on the server, so a caller can choose the recipients and content but never the mail server.
Part of Node Wire. Every call runs through the Node Wire runtime, so it gets input validation, retries with a circuit breaker, scope policy, a shared error taxonomy, and OpenTelemetry tracing. A Node Wire host exposes each action over REST, gRPC and MCP.
Install
pip install node-wire-smtp
This pulls in node-wire-runtime. Pre-releases
are published as X.Y.ZbN; install one with pip install --pre node-wire-smtp. To install
every connector at once, use node-wire-connectors.
Wheels are compiled with Cython and contain no Python source. They are built for CPython 3.11, 3.12 and 3.13 on Linux x86_64 (manylinux and musllinux), macOS arm64 and Windows x64.
Actions
The connector registers as smtp. MCP tool names are <connector_id>_<action>, with
dots replaced by underscores.
| Action | MCP tool | What it does |
|---|---|---|
send_email |
smtp_send_email |
Sends a plain-text email to one or more recipients (to, subject, body, optional from_email) |
When from_email is omitted, the sender is FROM_EMAIL, then SMTP_USERNAME.
Configuration
Add the connector to config/connectors.yaml:
connectors:
smtp:
enabled: true
exposed_via: ["rest", "grpc", "mcp"]
auth:
provider: static_credentials
username_secret: SMTP_USERNAME
password_secret: SMTP_PASSWORD
The relay is configured only through the environment. Credentials are read through the configured secret provider (environment variables by default):
| Variable | Purpose |
|---|---|
SMTP_HOST |
Relay hostname (default smtp.gmail.com) |
SMTP_PORT |
Relay port (default 587) |
SMTP_USE_TLS |
Upgrade the connection with STARTTLS (default true). Port 465 always uses implicit TLS |
SMTP_USERNAME |
Relay login |
SMTP_PASSWORD |
Relay password or app password |
FROM_EMAIL |
Default sender address |
NW_SMTP_ALLOWED_HOSTS |
Optional. Comma-separated relay hostnames; the connector refuses to send if SMTP_HOST is not listed |
Usage
Set NW_ALLOWED_CONNECTORS=smtp (comma-separate several). Node Wire loads only the
connectors listed there, and discovers them through the node_wire.connectors entry point.
A Node Wire host (the REST, gRPC or MCP server, or ConnectorFactory) then builds the connector
from the configuration above. See Use a connector.
Security notes
- The payload cannot set the relay host, port or TLS mode; those fields are dropped. Relay credentials therefore never go to a host chosen by the caller.
- Set
NW_SMTP_ALLOWED_HOSTSin production. subjectmay not contain newlines or control characters, which blocks header injection.
Documentation
- Node Wire on GitHub: source, issues and full documentation
- Connector reference
- Configuration
- Error codes
- Changelog
License
Apache-2.0. See LICENSE.
Metadata
Release files for node-wire-smtp 1.0.0b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 5.8 MB
Release files / node_wire_smtp-1.0.0b1-cp313-cp313-win_amd64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 133.2 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b1b25db3abafff99ddeb9fa986282c6055247e79887f82c2021e1d7dd1f03ffb
|
|
BLAKE2b-256 checksum How to use checksums |
f5fc1eccaa22b6a83cd8f1a24743a673c01e1b5211e40a4559d7f934696ba1bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 820.8 kB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
a867c9919e7fb544cb3a51387643908634daf064586765ac25054c95c40a0ccc
|
|
BLAKE2b-256 checksum How to use checksums |
ef414f2603aa4855b382973544969a5931a3dcc867705e33589b93b523be5460
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 827.0 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bbed018d3b014150328a0a4f5741b08b0028384914735ddbffe442b0fb252d58
|
|
BLAKE2b-256 checksum How to use checksums |
54f1746db809490a82a256ee83480f05a8e85ba7af9f04d8c2872fb37fe07a6e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 149.7 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
458b5121f718815886d3f6685f3d42167b5781943573cfc346b7cf57b2cd229e
|
|
BLAKE2b-256 checksum How to use checksums |
b785193cda65892fa9511868f3a0fed183b14ec205cc773a9bdc718f6ccc7d45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp312-cp312-win_amd64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 135.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1f7c8d0b2e06131fcdc9b8b36ea8fcfe4451b0d54e93eb7b2c399a60cc2d32b8
|
|
BLAKE2b-256 checksum How to use checksums |
6e4c8c881ba49ac45d1905af6c0b2925481c77e7b6192345387840bc6adb13b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 848.5 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
ede1b517b848766c6c50b03b9f11f8e106a23ac31c624ea19458c605b6106f62
|
|
BLAKE2b-256 checksum How to use checksums |
b8bf56e4d01954736bdb3d56662ce0dcdccc5c716b359465002a8ed04107bce4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 855.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
ba2aec8778b4ef54932e86b0261349aff01d4f1d82e3ba7723c73b5f4c6fcdb3
|
|
BLAKE2b-256 checksum How to use checksums |
0c6bbbb65d375395d3e57b6435fde062b9ce78daa6eaa5499ce0cc15a607c9af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 151.7 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
12fc2067f43ebfd1e7f0cf543728594af612e5d5a617becfb9eb701cc280ea53
|
|
BLAKE2b-256 checksum How to use checksums |
13459559dfa69d7531d32dc33d90dbe020193ca2b54db17e9239ea444af336e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp311-cp311-win_amd64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 137.7 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
944b9ebbcf2184af1a1e7108b3ec93602ebcd2ab44b851d4daf8bd4069bb1813
|
|
BLAKE2b-256 checksum How to use checksums |
b8cf3191e1599414fd86d8b31a1dd7f97686e6bb76393c5f5a9a9fec6d1dc87c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 807.0 kB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
729b4f170af5b8b1e99e4ef79501abf303e9a28aefd8ada6f26ef211670b172d
|
|
BLAKE2b-256 checksum How to use checksums |
aa214d1cc66b139ded47b955ee0333ef8d0fc103c726f7fcbb176b0166002f1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 807.0 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a0a250fafdd687fa6714d063129776a308695443abe444cc6344e285f6ebcbe1
|
|
BLAKE2b-256 checksum How to use checksums |
92aae7a0657923d61a35b085080dbefacf9ef9a6ac64754c56bc3c4f87b21455
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / node_wire_smtp-1.0.0b1-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | node_wire_smtp-1.0.0b1-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 149.4 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
270e5219ae392b726e1b1b81aa981f386495230a772b19f280c3aac8d9134de5
|
|
BLAKE2b-256 checksum How to use checksums |
cc9e606da30ddad7b8261394f5c662ae05f4783f190b5ddbd691c08cec6f6821
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency log