2020-02-12 08:35:32 +00:00
|
|
|
mod common;
|
|
|
|
|
2021-12-21 17:40:01 +00:00
|
|
|
pub use common::*;
|
2020-02-12 08:35:32 +00:00
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
use indymilter_test::*;
|
|
|
|
|
|
|
|
/// An authenticated sender is accepted, the message is not processed.
|
2022-02-21 17:58:24 +00:00
|
|
|
#[tokio::test]
|
|
|
|
async fn authenticated_sender() {
|
|
|
|
let milter = SpamAssassinMilter::spawn(LOCALHOST, Default::default())
|
|
|
|
.await
|
|
|
|
.unwrap();
|
2020-02-12 08:35:32 +00:00
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
let mut conn = TestConnection::open(milter.addr()).await.unwrap();
|
2020-02-12 08:35:32 +00:00
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
let status = conn.connect("client.gluet.ch", [123, 123, 123, 123]).await.unwrap();
|
|
|
|
assert_eq!(status, Status::Continue);
|
|
|
|
|
|
|
|
let status = conn.helo("mail.gluet.ch").await.unwrap();
|
|
|
|
assert_eq!(status, Status::Continue);
|
2020-02-12 08:35:32 +00:00
|
|
|
|
2023-01-18 09:23:21 +00:00
|
|
|
// `{auth_authen}` holds the SASL login name, if any.
|
|
|
|
conn.macros(MacroStage::Mail, [("{auth_authen}", "from@gluet.ch")])
|
|
|
|
.await
|
|
|
|
.unwrap();
|
|
|
|
|
|
|
|
let status = conn.mail(["<from@gluet.ch>"]).await.unwrap();
|
|
|
|
assert_eq!(status, Status::Accept);
|
|
|
|
|
|
|
|
conn.close().await.unwrap();
|
|
|
|
|
|
|
|
milter.shutdown().await.unwrap();
|
2020-02-12 08:35:32 +00:00
|
|
|
}
|