Skip to main content

A SPAMC protocol library.Help you use SpamAssassin's SPAMD service.

Project description

spamclib


A SPAMC protocol library.Help you use SpamAssassin's SPAMD service.

Feature support

  • Support sync client.
  • Support async client.
  • Support TLS.

Install

pip install spamclib

Example


Sync client

#!/usr/bin/python3
# -*- coding: utf-8 -*-

from spamclib.spamc_sync_client import SyncSpamcClient

GTUBE = '''
Subject: Test spam mail (GTUBE)
Message-ID: <GTUBE1.1010101@example.net>
Date: Wed, 23 Jul 2003 23:30:00 +0200
From: Sender <sender@example.net>
To: Recipient <recipient@example.net>
Precedence: junk
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

This is the GTUBE, the
	Generic
	Test for
	Unsolicited
	Bulk
	Email

If your spam filter supports it, the GTUBE provides a test by which you
can verify that the filter is installed correctly and is detecting incoming
spam. You can send yourself a test mail containing the following string of
characters (in upper case and with no white spaces and line breaks):

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

You should send this test mail from an account outside of your network.

'''

if __name__ == '__main__':
    sc = SyncSpamcClient()
    # ping cannot support SpamAssassinForWindows
    sc.command_ping()
    sc.command_skip()
    res = sc.command_check(GTUBE.encode('utf-8'))
    print(res)
    print('Status code : %d' % res.status_code)
    print('Status message : %s' % res.status_message.decode('utf-8'))
    print('Header item Spam : %s' % res.get_header(b'Spam').decode('utf-8'))
    print('Response body : %s' % res.body.decode('utf-8'))
    sc.command_headers(GTUBE.encode('utf-8'))
    sc.command_process(GTUBE.encode('utf-8'))
    sc.command_report(GTUBE.encode('utf-8'))
    sc.command_report_ifspam(GTUBE.encode('utf-8'))
    sc.command_symbols(GTUBE.encode('utf-8'))
    pass

Async client

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import asyncio
from spamclib.spamc_async_client import AsyncSpamcClient

GTUBE = '''
Subject: Test spam mail (GTUBE)
Message-ID: <GTUBE1.1010101@example.net>
Date: Wed, 23 Jul 2003 23:30:00 +0200
From: Sender <sender@example.net>
To: Recipient <recipient@example.net>
Precedence: junk
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

This is the GTUBE, the
	Generic
	Test for
	Unsolicited
	Bulk
	Email

If your spam filter supports it, the GTUBE provides a test by which you
can verify that the filter is installed correctly and is detecting incoming
spam. You can send yourself a test mail containing the following string of
characters (in upper case and with no white spaces and line breaks):

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

You should send this test mail from an account outside of your network.

'''
bytes_GTUBE = GTUBE.encode('utf-8')
if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    sc = AsyncSpamcClient(loop=loop)
    # ping cannot support SpamAssassinForWindows
    loop.run_until_complete(sc.command_ping())
    loop.run_until_complete(sc.command_skip())
    res = loop.run_until_complete(sc.command_check(bytes_GTUBE))
    print(res)
    print('Status code : %d' % res.status_code)
    print('Status message : %s' % res.status_message.decode('utf-8'))
    print('Header item Spam : %s' % res.get_header(b'Spam').decode('utf-8'))
    print('Response body : %s' % res.body.decode('utf-8'))
    loop.run_until_complete(sc.command_headers(bytes_GTUBE))
    loop.run_until_complete(sc.command_process(bytes_GTUBE))
    loop.run_until_complete(sc.command_report(bytes_GTUBE))
    loop.run_until_complete(sc.command_report_ifspam(bytes_GTUBE))
    loop.run_until_complete(sc.command_symbols(bytes_GTUBE))
    pass

License

MIT License

Thanks

Part of the project reference aiospamc Thanks mjcaley

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
spamclib-0.0.3-py3-none-any.whl (10.5 kB) Copy SHA256 hash SHA256 Wheel py3
spamclib-0.0.3.tar.gz (8.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page