mirror of
https://github.com/mailscope/kumomta.git
synced 2026-08-20 11:28:17 +00:00
54 lines
1.4 KiB
Markdown
54 lines
1.4 KiB
Markdown
# kumo.spf.check_msg
|
|
|
|
```lua
|
|
kumo.spf.check_msg(MESSAGE, OPT_RESOLVER_NAME)
|
|
```
|
|
|
|
{{since('2025.12.02-67ee9e96')}}
|
|
|
|
This function will check SPF records from DNS for the provided message.
|
|
It will extract the appropriate domain and sender information from the metadata and message.
|
|
|
|
It will return an object containing the SPF `disposition` string and a `result`
|
|
of type `authenticationresult` for use with `msg:add_authentication_results()`.
|
|
|
|
The `OPT_RESOLVER_NAME` parameter is an optional string parameter that
|
|
specifies the name of a alternate resolver defined via
|
|
[kumo.dns.define_resolver](../kumo.dns/define_resolver.md). You can omit this
|
|
parameter and the default resolver will be used.
|
|
|
|
## Example: checking the SPF policy
|
|
|
|
```lua
|
|
kumo.on('smtp_server_message_received', function(msg, conn_meta)
|
|
-- Check the SPF policy for the domain and return the results.
|
|
local result = kumo.spf.check_msg(msg)
|
|
print('spf', kumo.json_encode_pretty(result))
|
|
if result.disposition ~= 'pass' then
|
|
kumo.reject(420, 'go away')
|
|
end
|
|
end)
|
|
```
|
|
|
|
might print something like this to the diagnostic log:
|
|
|
|
```
|
|
spf [
|
|
"disposition": "pass",
|
|
{
|
|
"result": "pass",
|
|
"method": "spf",
|
|
"reason": "matched 'all' directive",
|
|
"method_version": null,
|
|
"props": {
|
|
"smtp.mailfrom": "sender@example.com"
|
|
}
|
|
}
|
|
]
|
|
```
|
|
|
|
## See Also:
|
|
|
|
* [msg:add_authentication_results()](../message/add_authentication_results.md)
|
|
|