Crate mailgun_sdk

Source
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.

API Reference

§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 Param implementors.

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.