MTA: Do not convert e-mail local parts to lowercase (fixes #1916)
This commit is contained in:
@@ -175,7 +175,7 @@ async fn dmarc() {
|
||||
// Expect SPF auth failure report
|
||||
let message = qr.expect_message().await;
|
||||
assert_eq!(
|
||||
message.message.recipients.last().unwrap().address,
|
||||
message.message.recipients.last().unwrap().address(),
|
||||
"spf-failures@example.com"
|
||||
);
|
||||
message
|
||||
@@ -206,7 +206,7 @@ async fn dmarc() {
|
||||
// Expect DKIM auth failure report
|
||||
let message = qr.expect_message().await;
|
||||
assert_eq!(
|
||||
message.message.recipients.last().unwrap().address,
|
||||
message.message.recipients.last().unwrap().address(),
|
||||
"dkim-failures@example.com"
|
||||
);
|
||||
message
|
||||
@@ -257,7 +257,7 @@ async fn dmarc() {
|
||||
// Expect DMARC auth failure report
|
||||
let message = qr.expect_message().await;
|
||||
assert_eq!(
|
||||
message.message.recipients.last().unwrap().address,
|
||||
message.message.recipients.last().unwrap().address(),
|
||||
"dmarc-failures@example.com"
|
||||
);
|
||||
message
|
||||
|
||||
@@ -246,11 +246,11 @@ async fn sieve_scripts() {
|
||||
assert_eq!(notification.message.return_path, "");
|
||||
assert_eq!(notification.message.recipients.len(), 2);
|
||||
assert_eq!(
|
||||
notification.message.recipients.first().unwrap().address,
|
||||
notification.message.recipients.first().unwrap().address(),
|
||||
"john@example.net"
|
||||
);
|
||||
assert_eq!(
|
||||
notification.message.recipients.last().unwrap().address,
|
||||
notification.message.recipients.last().unwrap().address(),
|
||||
"jane@example.org"
|
||||
);
|
||||
notification
|
||||
@@ -326,7 +326,7 @@ async fn sieve_scripts() {
|
||||
assert_eq!(redirect.message.return_path, "");
|
||||
assert_eq!(redirect.message.recipients.len(), 1);
|
||||
assert_eq!(
|
||||
redirect.message.recipients.first().unwrap().address,
|
||||
redirect.message.recipients.first().unwrap().address(),
|
||||
"redirect@here.email"
|
||||
);
|
||||
redirect
|
||||
@@ -354,7 +354,7 @@ async fn sieve_scripts() {
|
||||
assert_eq!(redirect.message.return_path, "");
|
||||
assert_eq!(redirect.message.recipients.len(), 1);
|
||||
assert_eq!(
|
||||
redirect.message.recipients.first().unwrap().address,
|
||||
redirect.message.recipients.first().unwrap().address(),
|
||||
"redirect@somewhere.email"
|
||||
);
|
||||
redirect
|
||||
|
||||
@@ -170,9 +170,9 @@ async fn manage_queue() {
|
||||
.message
|
||||
.recipients
|
||||
.into_iter()
|
||||
.map(|r| r.address)
|
||||
.map(|r| r.address().to_string())
|
||||
.collect::<Vec<_>>(),
|
||||
vec!["success@foobar.org".to_string()]
|
||||
vec!["success@foobar.org"]
|
||||
);
|
||||
|
||||
// Fetch and validate messages
|
||||
@@ -322,7 +322,7 @@ async fn manage_queue() {
|
||||
.message
|
||||
.recipients
|
||||
.into_iter()
|
||||
.map(|r| r.address)
|
||||
.map(|r| r.address().to_string())
|
||||
.collect::<Vec<_>>(),
|
||||
vec!["john@foobar.org".to_string()]
|
||||
);
|
||||
|
||||
@@ -193,7 +193,7 @@ async fn lmtp_delivery() {
|
||||
.message
|
||||
.recipients
|
||||
.into_iter()
|
||||
.map(|r| r.address)
|
||||
.map(|r| r.address().to_string())
|
||||
.collect::<Vec<_>>(),
|
||||
vec![
|
||||
"bill@foobar.org".to_string(),
|
||||
|
||||
@@ -260,7 +260,7 @@ async fn smtp_delivery() {
|
||||
.message
|
||||
.recipients
|
||||
.into_iter()
|
||||
.map(|r| r.address)
|
||||
.map(|r| r.address().to_string())
|
||||
.collect::<Vec<_>>();
|
||||
recipients.extend(
|
||||
remote
|
||||
@@ -270,7 +270,7 @@ async fn smtp_delivery() {
|
||||
.message
|
||||
.recipients
|
||||
.into_iter()
|
||||
.map(|r| r.address),
|
||||
.map(|r| r.address().to_string()),
|
||||
);
|
||||
recipients.sort();
|
||||
assert_eq!(
|
||||
|
||||
@@ -11,7 +11,7 @@ use crate::smtp::{
|
||||
session::TestSession,
|
||||
};
|
||||
use mail_auth::MX;
|
||||
use smtp::queue::{DomainPart, Message, QueueEnvelope, Recipient, throttle::IsAllowed};
|
||||
use smtp::queue::{Message, QueueEnvelope, Recipient, throttle::IsAllowed};
|
||||
use std::{
|
||||
net::{IpAddr, Ipv4Addr},
|
||||
time::{Duration, Instant},
|
||||
@@ -286,7 +286,7 @@ impl<'x> TestQueueEnvelope<'x> for QueueEnvelope<'x> {
|
||||
mx,
|
||||
remote_ip: IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)),
|
||||
local_ip: IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)),
|
||||
domain: rcpt.address.domain_part(),
|
||||
domain: rcpt.domain_part(),
|
||||
rcpt,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,14 +220,14 @@ impl TestMessage for Message {
|
||||
fn rcpt(&self, name: &str) -> &Recipient {
|
||||
self.recipients
|
||||
.iter()
|
||||
.find(|d| d.address == name)
|
||||
.find(|d| d.address() == name)
|
||||
.unwrap_or_else(|| panic!("Expected rcpt {name} not found in {:?}", self.recipients))
|
||||
}
|
||||
|
||||
fn rcpt_mut(&mut self, name: &str) -> &mut Recipient {
|
||||
self.recipients
|
||||
.iter_mut()
|
||||
.find(|d| d.address == name)
|
||||
.find(|d| d.address() == name)
|
||||
.unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ async fn queue_retry() {
|
||||
let message = qr.expect_message().await;
|
||||
assert_eq!(message.message.return_path, "");
|
||||
assert_eq!(
|
||||
message.message.recipients.first().unwrap().address,
|
||||
message.message.recipients.first().unwrap().address(),
|
||||
"john@test.org"
|
||||
);
|
||||
message
|
||||
|
||||
@@ -113,7 +113,7 @@ async fn report_dmarc() {
|
||||
qr.assert_no_events();
|
||||
assert_eq!(message.message.recipients.len(), 1);
|
||||
assert_eq!(
|
||||
message.message.recipients.last().unwrap().address,
|
||||
message.message.recipients.last().unwrap().address(),
|
||||
"reports@foobar.net"
|
||||
);
|
||||
assert_eq!(message.message.return_path, "reports@example.org");
|
||||
|
||||
@@ -112,7 +112,7 @@ async fn report_tls() {
|
||||
// Expect report
|
||||
let message = qr.expect_message().await;
|
||||
assert_eq!(
|
||||
message.message.recipients.last().unwrap().address,
|
||||
message.message.recipients.last().unwrap().address(),
|
||||
"reports@foobar.org"
|
||||
);
|
||||
assert_eq!(message.message.return_path, "reports@example.org");
|
||||
|
||||
@@ -267,7 +267,7 @@ impl TestSession for Session<DummyIo> {
|
||||
let rcpts = ["a@foobar.org", "b@test.net", "c@foobar.org", "d@test.net"];
|
||||
for rcpt in &message.message.recipients {
|
||||
let idx = (rcpt.flags - 1) as usize;
|
||||
assert_eq!(rcpts[idx], rcpt.address);
|
||||
assert_eq!(rcpts[idx], rcpt.address());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user