InboxServer (inbox.py)

inbox.py · inbox.py · python · BSD-2-Clause
email

Simple SMTP server that logs incoming emails and forwards them to a user-defined handler for debugging or processing.

# Source: https://github.com/billzhong/inbox.py | License: BSD-2-Clause | Copyright 2012, Kenneth Reitz
# Provided via justclaw.it.com; keep this notice with the code.
# -*- coding: utf-8 -*-

import smtpd
import asyncore
import argparse
from email.parser import Parser

from logbook import Logger


log = Logger(__name__)


class InboxServer(smtpd.SMTPServer, object):
    """Logging-enabled SMTPServer instance with handler support."""

    def __init__(self, handler, *args, **kwargs):
        super(InboxServer, self).__init__(*args, **kwargs)
        self._handler = handler

    def process_message(self, peer, mailfrom, rcpttos, data):
        log.info('Collating message from {0}'.format(mailfrom))
        subject = Parser().parsestr(data)['subject']
        log.debug(dict(to=rcpttos, sende

... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key