An API wrapper for www.1secmail.com written in Python.
About
This is an easy to use yet full-featured Python API wrapper for www.1secmail.com ↗ using the official 1secMail API. It allows you to easily create temporary email addresses for testing, verification, or other purposes where you need a disposable email address.
Asynchronous operations are also supported!👍
Install
To install the package, you'll need Python 3.8 or above installed on your computer. From your command line:
pip install 1secMail
Note If you're willing to install the development version, do the following:
git clone https://github.com/qvco/1secMail-Python.git
cd 1secMail-Python
pip install -r requirements.txt
pip install -e .
Usage
Generating Email Addresses
To generate a list of random email addresses, use the random_email() method:
import secmail
client = secmail.Client()
client.random_email(amount=3)
>>> ['c3fho3cry1@1secmail.net', '5qcd3d36zr@1secmail.org', 'b6fgeothtg@1secmail.net']
You can also generate a custom email address by specifying the username and domain:
Note Specifying a domain is optional!
client.custom_email(username="bobby-bob", domain="kzccv.com")
>>> 'bobby-bob@kzccv.com'
Receiving Messages
To wait until a new message is received, use the await_new_message() method:
message = client.await_new_message("bobby-bob@kzccv.com")
To check all messages received on a particular email address, use the get_inbox() method and pass the email address:
inbox = client.get_inbox("bobby-bob@kzccv.com")
for message in inbox:
print(message.id)
print(message.from_address)
print(message.subject)
print(message.date)
You can also fetch a single message using the get_message() method and passing the email address and message ID:
message = client.get_message(address="bobby-bob@kzccv.com", message_id=235200687)
print(message.id)
print(message.subject)
print(message.body)
print(message.text_body)
print(message.html_body)
print(message.attachments)
print(message.date)
Downloading an attachment
You can download an attachment from a message in the inbox of a specified email address using the download_attachment method like this:
client.download_attachment(address, message_id, attachment_filename)
>>> 'Path: (C:\Users\user\path/config/rocket.png), Size: 49071B'
Asynchronous Client
Generating Email Addresses
To generate a list of random email addresses, use the random_email() method:
import asyncio
import secmail
async def main():
client = secmail.AsyncClient()
email_addresses = await client.random_email(amount=3)
print(email_addresses)
asyncio.run(main())
>>> ['c3fho3cry1@1secmail.net', '5qcd3d36zr@1secmail.org', 'b6fgeothtg@1secmail.net']
You can also generate a custom email address by specifying the username and domain:
Note Specifying a domain is optional!
await client.custom_email(username="bobby-bob", domain="kzccv.com")
>>> 'bobby-bob@kzccv.com'
Receiving Messages
To wait until a new message is received, use the await_new_message() method:
import asyncio
import secmail
async def main():
client = secmail.AsyncClient()
message = await client.await_new_message("bobby-bob@kzccv.com")
print(f"{message.from_address}: {message.subject}")
asyncio.run(main())
To check all messages received on a particular email address, use the get_inbox() method and pass the email address:
import asyncio
import secmail
async def main():
client = secmail.AsyncClient()
inbox = await client.get_inbox("bobby-bob@kzccv.com")
print(f"You have {len(inbox)} messages in your inbox.")
for message in inbox:
print(message.id)
print(message.from_address)
print(message.subject)
print(message.date)
asyncio.run(main())
You can also fetch a single message using the get_message() method and passing the email address and message ID:
import asyncio
import secmail
async def main():
client = secmail.AsyncClient()
address = "bobby-bob@kzccv.com"
inbox = await client.get_inbox(address)
message_id = inbox[0].id
message = await client.get_message(address, message_id)
print(message.id)
print(message.subject)
print(message.body)
print(message.text_body)
print(message.html_body)
print(message.attachments)
print(message.date)
asyncio.run(main())
Downloading an attachment
You can download an attachment from a message in the inbox of a specified email address using the download_attachment method like this:
import asyncio
import secmail
async def main():
client = secmail.AsyncClient()
address = "bobby-bob@kzccv.com"
inbox = await client.get_inbox(address)
message_id = inbox[0].id
message = await client.get_message(address, message_id)
attachment_filename = message.attachments[0].filename
await client.download_attachment(address, message_id, attachment_filename)
asyncio.run(main())
>>> 'Path: (C:\Users\user\path/config/rocket.png), Size: 49071B'
Licnese
Metadata
Release files for 1secMail 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| 1secMail-1.2.0.tar.gz | 8.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 1secMail-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.1 kB
Release files / 1secMail-1.2.0.tar.gz
| Download URL | 1secMail-1.2.0.tar.gz |
|---|---|
| Size | 8.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
169955e6239aa2b3e039388dae0a4f6d26ef4f0a86806562c0b21be79d78450c
|
|
BLAKE2b-256 checksum How to use checksums |
d3cb9908c2735deef9b2ddc94c64c2709a9724495da4884fe4e1954196310266
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|
Release files / 1secMail-1.2.0-py3-none-any.whl
| Download URL | 1secMail-1.2.0-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e2e01fd8ed95abab90de2ec5dbf8f6e0687398ba90583d01b0d39c322aa008a
|
|
BLAKE2b-256 checksum How to use checksums |
93847a6bbe6c03787579920b4407f8ddb6551a948405a41362de31bce6ab237c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.0
|