mirror of
https://github.com/mailscope/kumomta.git
synced 2026-09-05 18:18:56 +00:00
56 lines
1.5 KiB
Markdown
56 lines
1.5 KiB
Markdown
# kumo.spf.check_host
|
|
|
|
```lua
|
|
kumo.spf.check_host { PARAMS }
|
|
```
|
|
|
|
{{since('2024.11.08-d383b033')}}
|
|
|
|
This function will check SPF records from DNS for the given domain and IP address.
|
|
|
|
It takes three arguments:
|
|
|
|
- `domain` (`string`), the domain to check (for example, from the `smtp_server_ehlo` event)
|
|
- `conn_meta` (`connectionmeta`), used to get the client's IP address
|
|
- `sender` (optional `string`), the sender address to check
|
|
|
|
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 {{since('2025.12.02-67ee9e96', inline=True)}} 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_ehlo', function(domain, conn_meta)
|
|
-- Check the SPF policy for the domain and return the results.
|
|
local result = kumo.spf.check_host(domain, conn_meta)
|
|
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": {}
|
|
}
|
|
]
|
|
```
|
|
|
|
## See Also:
|
|
|
|
* [msg:add_authentication_results()](../message/add_authentication_results.md)
|