temp_mail_blocker 1.1.1
temp_mail_blocker: ^1.1.1 copied to clipboard
Official Flutter/Dart SDK for TempMailBlocker email validation service. Validate emails with syntax checking, domain verification, MX records, SMTP validation, disposable email detection, and risk assessment.
example/main.dart
import 'package:temp_mail_blocker/temp_mail_blocker.dart';
Future<void> main() async {
// Initialize the SDK
// Get your API key from: https://tempmailblocker.com/
// New users get 100 free credits when they sign up!
final client = MailValidationClient(
apiKey: 'your-api-key-here', // Get this from your dashboard
baseUrl: 'https://tempmailblocker.com',
);
try {
// Single validation
print('=== Single Validation ===');
final singleResult = await client.validateEmail('test@example.com');
print('Single validation result:');
print(' Email: ${singleResult.email}');
print(' Valid: ${singleResult.isValid}');
print(' Score: ${singleResult.score}');
print(' Deliverable: ${singleResult.deliverable}');
print(' Risk: ${singleResult.risk}');
print(' Provider: ${singleResult.provider ?? 'Unknown'}');
print(' Disposable: ${singleResult.disposable}');
print(' Generic: ${singleResult.generic}');
// Show mocking message if disposable email detected
if (singleResult.disposable) {
final mockingMessage = singleResult.getMockingMessage();
if (mockingMessage != null) {
print('\n π Mocking Message: $mockingMessage');
}
}
if (singleResult.creditsRemaining != null) {
print(' Credits Remaining: ${singleResult.creditsRemaining}');
}
if (singleResult.cached == true) {
print(' (Cached result - no credits used)');
}
// Bulk validation
print('\n=== Bulk Validation ===');
final bulkJob = await client.createBulkJob(
emails: [
'user1@domain.com',
'user2@domain.com',
'invalid@email',
],
name: 'Test Validation',
);
print('Bulk job created: ${bulkJob.id}');
print('Status: ${bulkJob.status}');
print('Total emails: ${bulkJob.totalEmails}');
// Wait for completion
print('\nWaiting for job to complete...');
final bulkResults = await client.waitForJobCompletion(
bulkJob.id,
pollInterval: const Duration(seconds: 5),
timeout: const Duration(minutes: 5),
);
print('\nBulk validation completed:');
print(' Total: ${bulkResults.summary.total}');
print(' Valid: ${bulkResults.summary.valid}');
print(' Invalid: ${bulkResults.summary.invalid}');
print(' Processed: ${bulkResults.summary.processed}');
// Print individual results
print('\nIndividual results:');
bulkResults.results.forEach((result) {
final status = result.isValid ? 'β Valid' : 'β Invalid';
print(' ${result.email}: $status (Score: ${result.score})');
});
} on ApiException catch (e) {
print('\nAPI Error: ${e.message}');
if (e.statusCode != null) {
print('Status Code: ${e.statusCode}');
if (e.statusCode == 402) {
print(
'π‘ Insufficient credits. Visit https://tempmailblocker.com/ to purchase more.');
print(' New users get 100 free credits when they sign up!');
} else if (e.statusCode == 401) {
print(
'π‘ Invalid API key. Get your API key from: https://tempmailblocker.com/');
}
}
if (e.code != null) {
print('Error Code: ${e.code}');
}
} catch (e) {
print('\nError: $e');
}
}