7 releases
0.2.0 | Mar 13, 2024 |
---|---|
0.2.0-alpha.2 | Mar 4, 2024 |
0.2.0-alpha.1 | Jan 19, 2024 |
0.1.0 | Sep 25, 2023 |
0.0.1 | Nov 4, 2022 |
#328 in Email
Used in 3 crates
39KB
818 lines
indymilter-test
The indymilter-test library provides facilities for testing milter programs. It can be used to simulate the MTA side of an MTA–milter conversation during integration testing.
This library was originally created for testing milters written using the
indymilter library. However, it contains a general milter client
implementation, and can be used for testing any milter at all. For example, it
could be used as a replacement for the miltertest
utility from the OpenDKIM
project.
For now, this library is released as a ‘minimum viable product’. It is being used successfully in a number of projects, but the API is still lacking in good ergonomics, and diagnostics leave something to be desired. Consider it a sharp tool: you must be familiar with how SMTP client and server talk to each other and how that maps to an MTA–milter conversation, and use the library API accordingly.
Usage
Include indymilter-test in the [dev-dependencies]
section of Cargo.toml
as
usual.
As mentioned above, using the library API requires some expertise in the milter protocol. The following are some helpful resources on indymilter-test usage:
- API documentation
- Example test
- sendmail milter documentation: For a detailed description of the milter
protocol, see the original sendmail milter documentation. It can be found in
your distro’s sendmail package (for example, on Debian and Ubuntu at
/usr/share/doc/sendmail-doc/libmilter/html/index.html
). - indymilter trace logging: When testing a milter written using indymilter, install a tracing subscriber and enable logging at trace level for insights into milter operation.
The minimum supported Rust version is 1.65.0.
Licence
Copyright © 2022–2024 David Bürgin
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Dependencies
~3–12MB
~129K SLoC