Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!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}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement