Quick Start Guide
This guide will help you get started with the Email Deliverability Library quickly.
Basic Setup
First, import the main class:
from email_deliverability import DeliverabilityManager
Initialize the manager with your domain and sending IP:
manager = DeliverabilityManager(
domain="yourdomain.com",
ip="192.0.2.10",
auto_update_resources=True # Automatically update resources daily
)
Authentication Analysis
Check your domain’s authentication setup:
# Analyze SPF, DKIM, and DMARC setup
auth_results = manager.analyze_domain_setup()
# Print the overall score
print(f"Authentication Score: {auth_results['overall_score']}/100")
# Check what issues were found
for mechanism, data in auth_results.items():
if mechanism in ['spf', 'dkim', 'dmarc'] and data.get('issues'):
print(f"{mechanism.upper()} issues:")
for issue in data['issues']:
print(f" - {issue}")
# Get recommendations
print("\nRecommendations:")
for rec in auth_results['recommendations']:
print(f"- {rec}")
Reputation Monitoring
Check if your IP is blacklisted:
ip_results = manager.check_ip_reputation()
if ip_results['status'] == 'clean':
print("IP is not blacklisted!")
else:
print(f"IP is blacklisted on {len(ip_results['blacklisted_on'])} blacklists:")
for bl in ip_results['blacklisted_on']:
print(f"- {bl}")
Email List Validation
Validate a list of email addresses:
emails = [
"user@example.com",
"invalid@nonexistent.domain",
"test@mailinator.com"
]
validation_results = manager.validate_email_list(emails)
# Print quality assessment
analysis = validation_results['analysis']
print(f"List Quality: {analysis['quality_level']} ({analysis['quality_score']}%)")
print(f"Valid emails: {analysis['valid_emails']}/{analysis['total_emails']}")
print(f"Disposable emails: {analysis['disposable_emails']}")
# Print recommendations for improving list quality
print("\nRecommendations:")
for rec in analysis['recommendations']:
print(f"- {rec}")
IP Warming Plan Creation
Create an IP warming plan for a new sending IP:
warming_plan = manager.create_ip_warming_plan(daily_target=10000, warmup_days=30)
# Print the schedule
print("IP Warming Schedule:")
for day in warming_plan['schedule'][:5]: # Show first 5 days
print(f"Day {day['day']} ({day['date']}): {day['volume']} emails ({day['percent_of_target']}%)")
# Print recommendations
print("\nWarming Recommendations:")
for rec in warming_plan['recommendations'][:3]: # Show first 3 recommendations
print(f"- {rec}")
Comprehensive Deliverability Status
Get a comprehensive deliverability status report:
status = manager.check_deliverability_status()
print(f"Domain: {status['domain']}")
print(f"IP: {status['ip']}")
# Print authentication status
auth = status['authentication']
print("\nAuthentication:")
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")
# Print reputation status
rep = status['reputation']
print("\nReputation:")
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
print("\nRecommendations:")
for rec in status['recommendations']:
print(f"- {rec}")
Resource Management
The library downloads and caches external resources like blacklists and disposable domain lists. You can manually update these resources:
from email_deliverability import update_deliverability_resources
# Update all resources
update_results = update_deliverability_resources()
print(f"Updated {len(update_results)} resources")
Or start a background scheduler to update resources daily:
from email_deliverability import start_resource_updater
# Update resources every day at 3 AM
start_resource_updater("03:00")
Next Steps
Explore the detailed documentation for each component:
Authentication Tools - Details on SPF, DKIM, and DMARC implementation
Reputation Monitoring - Information on reputation monitoring
Email List Hygiene - Email list validation and maintenance
IP Warming Tools - IP warming strategies
Unified Facade Interface - Using the unified DeliverabilityManager interface