MAIL::MIMEDEFANG::ASYNC::RESULTS(3)
β¨ NAME β¨
Mail::MIMEDefang::Async::Results β bestie, this is the module that Interprets async check output for MIMEDefang. That's the whole job. She reads, she translates, she tells you what to do. π
πΈ DESCRIPTION πΈ
okay so picture this: md_async_run_checks() has just dumped a whole pile of raw, unhinged output on your doorstep. Mail::MIMEDefang::Async::Results is the friend who picks it up, reads it, and turns it into actionable filter decisions β that's reject, tempfail, score, and pass. Raw chaos in, clean vibes out. No cap. π¦
π SYNOPSIS π
use Mail::MIMEDefang::Async::Results;
my $dnsbl = md_async_interpret_dnsbl(
records => $result->{results}{zen},
zone => 'zen.spamhaus.org',
error => $result->{errors}{zen},
);
my $score = md_async_score_results(
interpreted => { zen => $dnsbl },
reject_at => 5.0,
);
if ($score->{action} eq 'REJECT') {
return action_bounce("550 5.7.1 " . $score->{reasons}[0]);
}
π METHODS π
md_async_interpret_dnsbl(%args)β reads a DNSBL result and tells you what's up. Args:records(an arrayref, orundef, we don't judge),zone, anderror. Hands you back a hashref with the keyslisted,code,reason, and sometimeserrorif there was one. πmd_async_interpret_spamassassin(%args)β parses a raw SPAMC protocol response, because that thing is not self-explanatory. Args:raw,error,threshold(defaults to5.0). Returnsis_spam,score,threshold,symbols, andreason. Slay.md_async_interpret_clamav(%args)β takes a clamdPINGorINSTREAMresponse and translates it. Args:raw,error. Returnsavailable,virus,name,reason. π¦md_async_interpret_rdns(%args)β interprets a PTR record result. Args:records,error,ip. Returnshas_rdns,ptr,dynamic,reason. reverse DNS detective work fr fr πmd_async_interpret_spf_txt(%args)β checks whether a TXT record lookup actually came back with an SPF record. Args:records,error,domain. Returnshas_spf,record,reason. π§md_async_interpret_dmarc($raw)β parses a raw DMARC TXT policy string (the kind you get back frommd_async_dmarc_verify()or from therecordsofmd_async_check_dmarc_record()).
Returns a hashref with these keys: has_dmarc, policy, subdomain_policy, pct, rua, ruf, adkim, aspf, reason. that's a lot of keys bestie, but she holds them all π
md_async_score_results(%args)β the main character moment: tallies up all your individual interpreted check results into one weighted spam score. Args:interpreted(a hashref of name β interp result),weights(optional override, if you're feeling spicy),reject_at(default8.0), andtempfail_at(default12.0).
Returns { score, action, reasons }, where action is one of 'PASS', 'REJECT', or 'TEMPFAIL'. periodt. π
π SEE ALSO π
Mail::MIMEDefang::AsyncMail::MIMEDefang::Async::Checks
go read those too, iykyk π«Ά
version 3.7.1, dated 2026-07-20 β that's a wrap bestie, thanks for reading, mwah πβ¨π
π¦ where this page comes from
- fedora 43: mimedefang 3.7.1-1.fc43 Β· GPL-2.0-only AND GPL-2.0-or-later
- fedora 44: mimedefang 3.7.1-1.fc44 Β· GPL-2.0-only AND GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms