error
code
Python
verified
Бесплатная загрузка
devices
Кроссплатформенный
code Предпросмотр кода
Python#!/usr/bin/env python3
"""
Email Bounce Analyzer
Parse and categorize email bounce messages
"""
import re
from enum import Enum
class BounceType(Enum):
HARD = 'hard_bounce'
SOFT = 'soft_bounce'
BLOCKED = 'blocked'
UNKNOWN = 'unknown'
BOUNCE_PATTERNS = {
BounceType.HARD: [
r'user unknown',
r'mailbox.*not.*found',
r'does.*not.*exist',
r'invalid.*recipient',
r'no such user',
r'address rejected',
r'recipient rejected'
],
BounceType.SOFT: [
r'mailbox.*full',
r'over.*quota',
r'temporary.*failure',
r'try.*later',
r'service.*unavailable',
r'connection.*timeout'
],
BounceType.BLOCKED: [
r'spam',
r'blacklist',
r'blocked',
r'rejected.*policy',
r'denied',
r'banned'
]
}
def analyze_bounce(email_body):
"""Analyze bounce message and return type"""
body_lower = email_body.lower()
for bounce_type, patterns in BOUNCE_PATTERNS.items():
for pattern in patterns:
if re.search(pattern, body_lower):
return bounce_type
return BounceType.UNKNOWN
def analyze_batch(bounce_messages):
"""Analyze multiple bounce messages"""
results = {t: [] for t in BounceType}
for msg in bounce_messages:
bounce_type = analyze_bounce(msg['body'])
results[bounce_type].append(msg['email'])
return results
if __name__ == '__main__':
sample = "Delivery failed: User unknown"
print(f"Type: {analyze_bounce(sample).value}")
info Об инструменте
Анализатор bounce-сообщений парсит сообщения об отклонении и категоризирует их по типам. Понимание типов bounce помогает очищать email-список и улучшать доставляемость.
Категории bounce
- Hard Bounce - Постоянные ошибки (недействительные адреса, несуществующие домены)
- Soft Bounce - Временные проблемы (переполнен ящик, сервер недоступен)
- Заблокировано - Отклонено спам-фильтрами или чёрными списками
- Неизвестно - Нераспознанные паттерны bounce
Ключевые особенности
- Pattern Matching - Распознаётся 20+ паттернов bounce
- Пакетная обработка - Анализ множества bounce за раз
- Извлечение email - Извлекает отклонённые адреса из сообщений
- Генерация отчётов - Сводная статистика по типам bounce
Требования
- Python 3.7+
- Без внешних зависимостей
Важно: Всегда немедленно удаляйте hard bounce. Продолжение отправки повреждает репутацию отправителя.
download Скачать скрипт
Нужна полная автоматизация?
Попробуйте Postigo для автоматизированных email-кампаний с AI-персонализацией
rocket_launch Start Free Trial