[−][src]Crate mailgun_sdk
MailGun API client written in Rust.
This crate helps facilitate interacting with the MailGun API. You will need to supply both an API Key and Domain.
Send a Message
use mailgun_sdk::{ Client, ParamList, send_message::{SendMessageParam, SendMessageParamList}, }; let client = Client::new("ApiKey", "Domain"); let params = SendMessageParamList::default() .add(SendMessageParam::To("to@test.com")) .add(SendMessageParam::From("from@your-domain.com")) .add(SendMessageParam::Subject("Test Message")) .add(SendMessageParam::Html(r#"<html> <body> <h1>Test Message</h1> </body> </html>"#)); if let Err(error) = client.send_message(params) { eprintln!("Error: {:?}", error); }
This crate does not enforce rules on sending messages. However, you should almost always set the following when sending a message:
- Subject
- To
- From
- Html and/or Text
Caution: Not all send message request parameters have been tested. If you notice any that do not work, please feel free to create a ticket, or create a pull a request.
Pagination
For API calls that return a list of results, MailGun returns a paging
structure. The paging fields are all URLs. Instead of having to parse these,
you may use the call
method to fetch these pages.
let mut response = client.get_bounces(GetBouncesParamList::default()).unwrap(); let mut bounces = response.items; if bounces.len() > 0 { loop { response = client.call(&response.paging.next).unwrap(); if response.items.len() == 0 { break; } else { bounces.append(&mut response.items); } } }
Further Examples
let client = Client::new("ApiKey", "Domain"); // Get all events. let events = client.get_events(GetEventsParamList::default()).unwrap(); // Get all bounces. let bounces = client.get_bounces(GetBouncesParamList::default()).unwrap(); // Get account stats. let stats = client.get_stats(GetStatsParamList::default()).unwrap();
Modules
get_bounces | Request and response module for fetching bounces for a domain. |
get_complaints | Request and response module for fetching complaints for a domain. |
get_events | Request and response module for fetching events for a domain. |
get_stats | Request and response module for fetching stats for a domain. |
get_unsubscribes | Request and response module for fetching unsubscribes for a domain. |
get_whitelists | Request and response module for fetching whitelist records for a domain. |
send_message | Request and response module for sending messages from a domain. |
Structs
Client | |
Paging | Structure of pagination data returned by some API endpoints. |
Enums
ClientError | |
ParamError | Wrapper around possible errors that might be encountered when parsing
|
Constants
MAILGUN_API_BASE | Base URL for the MailGun API. |
Traits
Param | Trait for a single request parameter. |
ParamList | Trait for a list of request parameters. |