call_split
code
Python
verified
Free Download
devices
Cross-platform
code Code Preview
Python#!/usr/bin/env python3
"""
Email Batch Splitter
Split large email lists into warmup-friendly batches
"""
import csv
from pathlib import Path
def split_into_batches(emails, batch_size=50):
"""Split email list into batches of specified size"""
batches = []
for i in range(0, len(emails), batch_size):
batches.append(emails[i:i+batch_size])
return batches
def save_batches(batches, output_dir='batches', prefix='batch'):
"""Save batches to separate CSV files"""
Path(output_dir).mkdir(exist_ok=True)
for i, batch in enumerate(batches, 1):
filename = Path(output_dir) / f'{prefix}_{i:03d}.csv'
with open(filename, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['email'])
for email in batch:
writer.writerow([email])
print(f'Created {filename} with {len(batch)} emails')
return len(batches)
def load_emails(filepath):
"""Load emails from CSV or TXT file"""
emails = []
with open(filepath, 'r') as f:
for line in f:
email = line.strip()
if email and '@' in email:
emails.append(email)
return emails
def split_for_warmup(emails, daily_limit=50, warmup_days=14):
"""Split list for gradual warmup schedule"""
# Increase volume each day
schedule = []
current = daily_limit
for day in range(warmup_days):
schedule.append(min(current, len(emails)))
current = int(current * 1.2) # 20% increase per day
return schedule
if __name__ == '__main__':
import sys
emails = load_emails(sys.argv[1])
batches = split_into_batches(emails, batch_size=50)
save_batches(batches)
print(f'Created {len(batches)} batches')
info About This Tool
The Email Batch Splitter divides large email lists into smaller, manageable batches. Essential for email warmup, rate limiting, and campaign management.
Key Features
- Custom Batch Sizes - Split into any batch size (default 50)
- Warmup Scheduling - Generate progressive batch sizes for warmup
- CSV Output - Each batch saved as separate CSV file
- Numbered Files - Batches numbered for easy tracking
- Deduplication - Removes duplicates before splitting
Use Cases
- Email Warmup - Gradual volume increase for new domains
- Rate Limiting - Stay under daily sending limits
- A/B Testing - Split list for test variations
- ESP Migration - Move lists in manageable chunks
Requirements
- Python 3.7+
- No external dependencies
Warmup Tip: Start with 50 emails/day and increase by 20% daily for optimal domain reputation building.
download Download Script
Need Full Automation?
Try Postigo for automated email campaigns with AI personalization
rocket_launch Start Free Trial