Expand description
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§
Enums§
- Client
Error - Param
Error - Wrapper around possible errors that might be encountered when parsing
Param
implementors.
Constants§
- MAILGUN_
API_ BASE - Base URL for the MailGun API.