#!python3
import mailslurp_client
import os
"""
This script is designed to:
1. Connect to the MailSlurp API using an API key stored in the `MAILSLURP_API_KEY` environment variable.
2. Retrieve an inbox with a specific ID (`inbox_id`).
3. Wait for a specified number of emails (`email_num`) to arrive in the inbox.
4. Fetch the full email content for each email in the inbox.
5. Print the subject and body of each email.
The script uses the `wait_for_email_count` method to wait for the specified number of emails to arrive in the inbox.
This method takes the following parameters:
- `count`: The number of emails to wait for.
- `inbox_id`: The ID of the inbox to monitor.
- `timeout`: The time in milliseconds to wait for the emails to arrive.
- `unread_only`: A boolean indicating whether to only consider unread emails.
If the script times out waiting for the emails to arrive, it prints a message indicating that there are not enough emails in the inbox for the specified `email_num`.
If any other error occurs, the script prints an error message with the exception details.
"""
# Create a MailSlurp configuration
configuration = mailslurp_client.Configuration()
configuration.api_key['x-api-key'] = os.getenv("MAILSLURP_API_KEY")
inbox_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
password = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
email_num = 2 # Number of emails to fetch
wait = 1 # Timeout in minutes
try:
with mailslurp_client.ApiClient(configuration) as api_client:
inbox_controller = mailslurp_client.InboxControllerApi(api_client)
inbox = inbox_controller.get_inbox(inbox_id) # Replace with your inbox ID
# Wait for multiple emails to arrive in the inbox
wait_for_controller = mailslurp_client.WaitForControllerApi(api_client)
emails = wait_for_controller.wait_for_email_count(
count=email_num,
inbox_id=inbox.id,
timeout=wait*60*1000, # Milliseconds
unread_only=False
)
# Create an instance of EmailControllerApi
email_controller = mailslurp_client.EmailControllerApi(api_client)
for email_preview in emails:
# Fetch the full email using its ID
email = email_controller.get_email(email_id=email_preview.id)
print(email.subject)
print(email.body)
except mailslurp_client.exceptions.ApiException as e:
if e.status == 408:
print(f"Request timed out: There are not enough emails in the inbox for 'email_num' set to {email_num}.")
else:
print(f"An error occurred: {e}")
Comments
0 B
|👍
/👎