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