Unified Facade Interface
The Email Deliverability Library provides a unified facade interface, DeliverabilityManager, that gives you convenient access to all deliverability tools through a single entry point.
This design pattern simplifies usage and ensures components work together seamlessly.
Initialization
Initialize the deliverability manager with your domain and IP:
from email_deliverability import DeliverabilityManager
# Basic initialization
manager = DeliverabilityManager(
domain="example.com",
ip="192.0.2.1"
)
# With additional options
manager = DeliverabilityManager(
domain="example.com",
ip="192.0.2.1",
api_key="your_api_key_for_external_services",
auto_update_resources=True # Updates resources daily at 3 AM
)
Available Components
The facade provides access to these main components:
# Access SPF tools
manager.spf
# Access DKIM tools
manager.dkim
# Access DMARC tools
manager.dmarc
# Access reputation monitoring
manager.reputation
# Access email validation
manager.email_validator
# Access IP warming tools
manager.ip_warming
Integrated Analysis Methods
The facade also provides integrated methods that combine multiple components:
# Comprehensive authentication analysis
auth_results = manager.analyze_domain_setup()
# IP reputation check
ip_results = manager.check_ip_reputation()
# Email list validation
validation_results = manager.validate_email_list(emails)
# IP warming plan creation
warming_plan = manager.create_ip_warming_plan(daily_target=10000)
# Complete deliverability health check
status = manager.check_deliverability_status()
# Manual resource update
manager.update_resources()
Example: Complete Deliverability Analysis
This example performs a comprehensive deliverability analysis:
# Initialize with domain and IP
manager = DeliverabilityManager(domain="example.com", ip="192.0.2.1")
# Get complete deliverability status
status = manager.check_deliverability_status()
# Print summary
print(f"Domain: {status['domain']}")
print(f"IP: {status['ip']}")
print(f"Timestamp: {status['timestamp']}")
# Authentication status
auth = status['authentication']
print("\nAuthentication Status:")
print(f"SPF: {'✓' if auth['spf'] else '✗'}")
print(f"DKIM: {'✓' if auth['dkim'] else '✗'}")
print(f"DMARC: {'✓' if auth['dmarc'] else '✗'}")
print(f"Overall Score: {auth['overall_score']}/100")
# Reputation status
rep = status['reputation']
print("\nReputation Status:")
if 'ip_status' in rep:
print(f"IP Status: {rep['ip_status']}")
if 'domain_score' in rep:
print(f"Domain Score: {rep['domain_score']}/100")
# Print recommendations
if status['recommendations']:
print("\nRecommendations:")
for rec in status['recommendations']:
print(f"- {rec}")