Rust Integration
Using reqwest and serde.
use serde::Deserialize;
use reqwest::header::HeaderMap;
#[derive(Deserialize)]
struct Confidence {
confidence_score: u8,
status: String,
alias_status: String,
canonical_email: Option<String>,
is_role_based: bool,
}
#[derive(Deserialize)]
struct Validations {
is_disposable: bool,
}
#[derive(Deserialize)]
struct ApiResponse {
confidence: Confidence,
validations: Validations,
}
async fn validate_email(email: &str, api_key: &str) -> Result<bool, reqwest::Error> {
let client = reqwest::Client::new();
let url = format!("https://api.checkemail.dev/validate?email={}", email);
let mut headers = HeaderMap::new();
headers.insert("x-api-key", api_key.parse().unwrap());
let res = client.get(url)
.headers(headers)
.send()
.await?
.json::<ApiResponse>()
.await?;
let confidence = res.confidence;
let validations = res.validations;
if confidence.status == "DISPOSABLE" || validations.is_disposable {
return Ok(false);
}
Ok(confidence.status == "LIKELY")
}