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


Download files

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

Source Distribution

spamclib-0.0.3.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

spamclib-0.0.3-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file spamclib-0.0.3.tar.gz.

File metadata

  • Download URL: spamclib-0.0.3.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.0

File hashes

Hashes for spamclib-0.0.3.tar.gz
Algorithm Hash digest
SHA256 9387014856139767b88d8228dad12ecf1bbf23cd4d867a6f500defc3c27111f4
MD5 c29a6740ac5fb488a76426e7094423ef
BLAKE2b-256 5d3b6d69f659cdb5e66db2fa79a52bbfa388557f45f99e9027b994de28ed51aa

See more details on using hashes here.

File details

Details for the file spamclib-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: spamclib-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.1 CPython/3.7.0

File hashes

Hashes for spamclib-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5ba86be8343611fb9076bb73c23da08b2a404e401554ec90f814c8cd7bf4443b
MD5 acdfcefb333ad00c978775213eda69bb
BLAKE2b-256 78b5d07187a7913989e6147b2cfdd7d58d03fe209954bd091ca895facb2a7642

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page