Initial Source code version
This commit is contained in:
parent
90f5f38812
commit
d979374cbc
23 changed files with 2628 additions and 0 deletions
37
app/workers/mail_tlsrpt_worker.py
Normal file
37
app/workers/mail_tlsrpt_worker.py
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
from app.workers.base_worker import BaseWorker
|
||||
from app.job_registry import routing_key
|
||||
from app.workers.utils import resolve_txt
|
||||
|
||||
class TLSRPTWorker(BaseWorker):
|
||||
async def process(self, payload: dict, **meta) -> dict:
|
||||
domain = payload.get('domain')
|
||||
if not domain:
|
||||
raise ValueError('payload.domain is required')
|
||||
name = f"_smtp._tls.{domain}"
|
||||
txts = await resolve_txt(name)
|
||||
record = None
|
||||
rua = []
|
||||
for t in txts:
|
||||
tl = t.lower()
|
||||
if tl.startswith('v=tlsrptv1'):
|
||||
record = t
|
||||
# parse rua=mailto:... , mailto:...
|
||||
parts = [p.strip() for p in t.split(';')]
|
||||
for p in parts:
|
||||
if p.strip().lower().startswith('rua='):
|
||||
v = p.split('=',1)[1]
|
||||
rua = [x.strip() for x in v.split(',') if x.strip()]
|
||||
break
|
||||
return {
|
||||
'txt_record': record,
|
||||
'rua': rua,
|
||||
'enabled': record is not None,
|
||||
}
|
||||
|
||||
async def main():
|
||||
worker = TLSRPTWorker(routing_key("MailCheck", "TLSRPTCheck"), worker_id="tlsrpt-worker-1")
|
||||
await worker.run()
|
||||
|
||||
if __name__ == '__main__':
|
||||
import asyncio as _a
|
||||
_a.run(main())
|
||||
Loading…
Add table
Add a link
Reference in a new issue