我通过smtpd设置了一个由Python脚本管理的邮件服务器,由于收到了一些垃圾邮件,我决定将SpamAssassin连接到它。在
因为我找不到一个连接到SpamAssassin的Python代码来获得分数,所以我自己用在网上找到的一些代码构建了它。代码如下:# -*- config:utf-8 -*-
import socket, select, re, logging
from io import BytesIO
divider_pattern = re.compile(br'^(.*?)\r?\n(.*?)\r?\n\r?\n', re.DOTALL)
first_line_pattern = re.compile(br'^SPAMD/[^ ]+ 0 EX_OK$')
# @see https://github.com/slimta/python-slimta/blob/master/slimta/policy/spamassassin.py
class SpamAssassin(object):
def __init__(self, message, timeout=15):
self.score = None
self.symbols = None
# Connecting
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.settimeout(timeout)
client.connect(('127.0.0.1', 783))
# Sending
client.sendall(self._build_message(message))
c