Mail Ship: A powerful Python library for email automation and testing. It offers Gmail integration, real-time inbox monitoring, content extraction, and seamless Selenium integration. Perfect for developers navigating complex email-based workflows and testing scenarios.
Project description
Here’s a more concise and focused README.md tailored specifically for the PyPI package, including a link to the GitHub repository for detailed documentation.
MailShip
MailShip is a Python library designed to simplify Gmail automation for developers and testers. It offers tools for email generation, email content extraction, and seamless integration with CI/CD pipelines and testing frameworks.
Features
- Generate unique email addresses for testing.
- Wait for and retrieve emails in real time.
- Extract tokens and links from email content.
- Perform regex-based searches on email content.
- Automatically refresh Gmail API tokens via cron jobs or pipelines.
- CI/CD ready with GitHub Actions integration.
Installation
Install the library using pip:
pip install mailship
Getting Started
After installing the package, you can initialize the setup process:
Step 1: Setup Gmail Authentication
Run the following command to set up your Gmail API credentials:
mail-ship-setup
This will guide you through the setup process, including storing credentials and setting environment variables.
Step 2: Set Up Automatic Token Refreshing
- To set up a cron job (Linux/macOS) for automatic token refreshing, run:
mail-ship-setup --setup-cron - To set up a scheduled task (Windows), run:
mail-ship-setup --setup-task
For more detailed setup instructions, visit the GitHub repository.
Basic Usage
Here’s a quick example of how to use MailShip:
from mailship import GmailAutomator
automator = GmailAutomator(verbose=True)
# Generate a unique email for testing
email = automator.generate_email()
print(f"Generated email: {email}")
# Wait for an email
received_email = automator.wait_for_email(email, timeout=120)
if received_email:
print(f"Received email: {received_email['subject']}")
# Extract a token from the email
token = automator.extract_token(received_email)
print(f"Extracted token: {token}")
else:
print("No email received within the timeout period.")
CI/CD Integration
MailShip is designed to work seamlessly in CI/CD pipelines. Add the following step in your GitHub Actions workflow to refresh Gmail API tokens:
- name: Refresh Tokens
env:
GMAIL_CLIENT_ID: ${{ secrets.GMAIL_CLIENT_ID }}
GMAIL_CLIENT_SECRET: ${{ secrets.GMAIL_CLIENT_SECRET }}
GMAIL_AUTH_REFRESH_TOKEN: ${{ secrets.GMAIL_AUTH_REFRESH_TOKEN }}
GMAIL_AUTH_SALT: ${{ secrets.GMAIL_AUTH_SALT }}
run: python -m mailship.setup_auth --refresh-tokens
Documentation
For detailed documentation, advanced features, and contributing guidelines, visit the GitHub repository.
License
This project is licensed under a Custom Repository License. See the GitHub repository for details.
Contact
For questions or support, reach out on:
- Twitter: @OluwaseyiAjadi4
- LinkedIn: Oluwaseyi Ajadi
This README.md is concise, focused on installation and usage, and directs users to the GitHub repository for in-depth information. Let me know if you’d like further refinements!
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mailship-1.0.2.tar.gz.
File metadata
- Download URL: mailship-1.0.2.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d3fe47afc8f9d5a8e303e75f32b1f9f18118312be19394e644f1bea43445a05
|
|
| MD5 |
c39083d8f2542caa05aabf9130e407cd
|
|
| BLAKE2b-256 |
390f1311d7e1c513de4b342b780111baddabc013e8ac435c698289a101ca6249
|
File details
Details for the file mailship-1.0.2-py3-none-any.whl.
File metadata
- Download URL: mailship-1.0.2-py3-none-any.whl
- Upload date:
- Size: 31.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15a9331b1cba33968df42df0b04ddb33636ec5b15b5ac40b3c3a4c2263b6c599
|
|
| MD5 |
0d153078b387c1ce1194160c53e6c405
|
|
| BLAKE2b-256 |
76853fc894802b4b3e0ca32a854a20f031ddd982e46baf83d9de2d2926fd1dfc
|