smpplib
SMPP library for python
Decision gist · record as of 2026-08-14
Yes, if you need to integrate SMPP-based SMS into a Python application and have access to an SMPP gateway. The library is stable (Production/Stable classifier), has low install friction, and carries no known vulnerabilities. The dormant maintenance is a minor concern—no releases in 574 days—but the recent repository activity and broad Python version support suggest it remains functional. LGPLv3 copyleft licensing is a consideration if you plan to redistribute modified versions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires an SMPP server endpoint (hostname and port) to connect to; credentials (system_id and password) must be valid for the target SMPP service.
- Low install friction with a single lightweight dependency (six).
- Maintenance is dormant—no releases in 574 days—but the repository remains active with a recent commit on 2025-01-17 and 189 stars, suggesting the codebase is stable rather than abandoned.
License · maintenance · safety
copyleft license (copyleft) — Licensed under LGPLv3 (copyleft). You may use and modify the library freely, but any modifications must be released under the same license, and the library itself must remain open-source in derivative works.
last release 2025-01-17 (574 days) · last repo commit 2025-01-17 · 189 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 74,827 downloads/mo, #14,787 on PyPI
Alternatives
Verify before relying
import smpplib.client
import smpplib.consts
client = smpplib.client.Client('example.com', SOMEPORTNUMBER)
client.connect()
client.bind_transceiver(system_id='login', password='secret')
pdu = client.send_message(
source_addr='SENDER',
destination_addr='PHONENUMBER',
short_message=b'Hello',
source_addr_ton=smpplib.consts.SMPP_TON_INTL,
dest_addr_ton=smpplib.consts.SMPP_TON_INTL
)
client.listen()- Whether the dormant maintenance status poses a risk for future Python or SMPP protocol compatibility.
- Whether six dependency will remain maintained as Python 2 support is phased out industry-wide.
What it is and what it does
smpplib is a Python SMPP (Short Message Peer-to-Peer) protocol client that enables applications to send and receive SMS messages through an SMPP gateway. It handles the low-level protocol details—PDU encoding/decoding, connection management, and message sequencing—so you can focus on application logic. The library supports multi-part messages with automatic splitting, multiple character encodings (including UCS2 for non-Latin scripts), delivery receipts, and bidirectional message handling via callback handlers.
You instantiate a client with a gateway hostname and port, authenticate with credentials, then send messages by specifying source and destination phone numbers, message content, and encoding flags. The library can listen for incoming messages either synchronously (blocking) or in a background thread, automatically managing keep-alive signals to the SMPP server. It also allows custom sequence number generation for persistence across application restarts.
Use it for
- Send transactional SMS notifications (alerts, confirmations, OTPs) from a Python application to an SMPP gateway.
- Build a two-way SMS application that receives and responds to incoming messages via SMPP.
- Handle multi-part SMS with automatic splitting and character encoding for international text.
- Integrate SMS delivery tracking by processing delivery receipts from the SMPP server.
- Implement a persistent sequence number generator to maintain message tracking across application restarts.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to integrate SMPP-based SMS into a Python application and have access to an SMPP gateway.
The library is stable (Production/Stable classifier), has low install friction, and carries no known vulnerabilities. The dormant maintenance is a minor concern—no releases in 574 days—but the recent repository activity and broad Python version support suggest it remains functional. LGPLv3 copyleft licensing is a consideration if you plan to redistribute modified versions.
Install
smpplib on PyPI
Before you install
Low install friction with a single lightweight dependency (six). Maintenance is dormant—no releases in 574 days—but the repository remains active with a recent commit on 2025-01-17 and 189 stars, suggesting the codebase is stable rather than abandoned.
Requires an SMPP server endpoint (hostname and port) to connect to; credentials (system_id and password) must be valid for the target SMPP service.
License in practice
Licensed under LGPLv3 (copyleft). You may use and modify the library freely, but any modifications must be released under the same license, and the library itself must remain open-source in derivative works.
Quickstart
import smpplib.client
import smpplib.consts
client = smpplib.client.Client('example.com', SOMEPORTNUMBER)
client.connect()
client.bind_transceiver(system_id='login', password='secret')
pdu = client.send_message(
source_addr='SENDER',
destination_addr='PHONENUMBER',
short_message=b'Hello',
source_addr_ton=smpplib.consts.SMPP_TON_INTL,
dest_addr_ton=smpplib.consts.SMPP_TON_INTL
)
client.listen()
Verify before relying
- Whether the dormant maintenance status poses a risk for future Python or SMPP protocol compatibility.
- Whether six dependency will remain maintained as Python 2 support is phased out industry-wide.
Package facts
| License | copyleft license copyleft |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagesix |
| Maintenance | Dormant 574 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,827 / month, #14,787 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: Telecommunications IndustryLicense :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)Operating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: CommunicationsTopic :: Communications :: TelephonyTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python Modules |
Evidence: smpplib-2.2.4-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “SMPP client library”
- smpplibSMPP protocol client library for sending and receiving SMS messages…
- conjure-python-clientA lightweight HTTP client library built on requests that handles RPC…
- paypalhttpPayPalHttp is a generic HTTP client library designed to work with…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also azure-communication-sms · zulip · clx-sdk-xms · ringcentral · sendgrid · vonage · smsapi-client · vonage-sms · telesign · vonage-messages