mirror of
https://github.com/chatmail/core.git
synced 2026-05-09 01:46:30 +03:00
Parse ndns from Tiscali
This commit is contained in:
@@ -2334,6 +2334,18 @@ mod tests {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn test_parse_ndn_tiscali() {
|
||||||
|
test_parse_ndn(
|
||||||
|
"alice@tiscali.it",
|
||||||
|
"shenauithz@testrun.org",
|
||||||
|
"Mr.un2NYERi1RM.lbQ5F9q-QyJ@tiscali.it",
|
||||||
|
include_bytes!("../test-data/message/tiscali_ndn.eml"),
|
||||||
|
"",
|
||||||
|
)
|
||||||
|
.await;
|
||||||
|
}
|
||||||
|
|
||||||
#[async_std::test]
|
#[async_std::test]
|
||||||
async fn test_parse_ndn_testrun() {
|
async fn test_parse_ndn_testrun() {
|
||||||
test_parse_ndn(
|
test_parse_ndn(
|
||||||
|
|||||||
@@ -1458,7 +1458,8 @@ pub(crate) async fn prefetch_should_download(
|
|||||||
let is_reply_to_chat_message = prefetch_is_reply_to_chat_message(context, &headers).await;
|
let is_reply_to_chat_message = prefetch_is_reply_to_chat_message(context, &headers).await;
|
||||||
|
|
||||||
let maybe_ndn = if let Some(from) = headers.get_header_value(HeaderDef::From_) {
|
let maybe_ndn = if let Some(from) = headers.get_header_value(HeaderDef::From_) {
|
||||||
from.to_ascii_lowercase().contains("mailer-daemon")
|
let from = from.to_ascii_lowercase();
|
||||||
|
from.contains("mailer-daemon") || from.contains("mail-daemon")
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -570,13 +570,13 @@ impl MimeMessage {
|
|||||||
|
|
||||||
any_part_added = true;
|
any_part_added = true;
|
||||||
}
|
}
|
||||||
Some("delivery-status") => {
|
// Some providers, e.g. Tiscali, forget to set the report-type. So, if it's None, assume that it might be delivery-status
|
||||||
|
Some("delivery-status") | None => {
|
||||||
if let Some(report) = self.process_delivery_status(context, mail)? {
|
if let Some(report) = self.process_delivery_status(context, mail)? {
|
||||||
self.failure_report = Some(report);
|
self.failure_report = Some(report);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add all parts (in fact, AddSinglePartIfKnown() later check if
|
// Add all parts (we need another part, preferrably text/plain, to show as an error message)
|
||||||
// the parts are really supported)
|
|
||||||
for cur_data in mail.subparts.iter() {
|
for cur_data in mail.subparts.iter() {
|
||||||
if self.parse_mime_recursive(context, cur_data).await? {
|
if self.parse_mime_recursive(context, cur_data).await? {
|
||||||
any_part_added = true;
|
any_part_added = true;
|
||||||
@@ -588,7 +588,6 @@ impl MimeMessage {
|
|||||||
any_part_added = self.parse_mime_recursive(context, first).await?;
|
any_part_added = self.parse_mime_recursive(context, first).await?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => {}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
91
test-data/message/tiscali_ndn.eml
Normal file
91
test-data/message/tiscali_ndn.eml
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
Return-Path: <>
|
||||||
|
Delivered-To: alice@tiscali.it
|
||||||
|
Received: from director-5.mail.tiscali.sys ([10.39.80.174])
|
||||||
|
by dovecot-08.mail.tiscali.sys with LMTP id SBRfEpGb517VAgAAd2fHbg
|
||||||
|
for <alice@tiscali.it>; Mon, 15 Jun 2020 16:02:25 +0000
|
||||||
|
Received: from cmgw-4.mail.tiscali.it ([10.39.80.174])
|
||||||
|
by director-5.mail.tiscali.sys with LMTP id MFUPL5Cb516tawAArQJVuQ
|
||||||
|
; Mon, 15 Jun 2020 16:02:25 +0000
|
||||||
|
Received: from michael.mail.tiscali.it ([213.205.33.246])
|
||||||
|
by cmgw-4.mail.tiscali.it with
|
||||||
|
id rTtS2200V5JdeUd01U2RlV; Mon, 15 Jun 2020 16:02:25 +0000
|
||||||
|
x-cnfs-analysis: v=2.3 cv=ZdPMyfdA c=1 sm=1 tr=0 cx=a_idp_d
|
||||||
|
a=AfTPebshMYb+aQOCLa9q3Q==:117 a=HpEJnUlJZJkA:10 a=jmdcTMp_Gj4A:10
|
||||||
|
a=r77TgQKjGQsHNAKrUKIA:9 a=b8iBRs35AAAA:8 a=NMdB-582e605uxHDr_AA:9
|
||||||
|
a=QEXdDO2ut3YA:10 a=MhhPCb74-dYA:10 a=HXlsH_Kov2KnitTn7A4A:9
|
||||||
|
a=BkuCPOF3BOzethIN9HQA:9 a=qG5HpJ6ZyD35YNEB:21 a=kvHihYffoorsyJbA:21
|
||||||
|
a=xD8EQi6zkreDqSNPYj5l:22
|
||||||
|
Date: Mon, 15 Jun 2020 16:02:25 +0000
|
||||||
|
From: Mail Delivery System <mail-daemon@smtp.tiscali.it>
|
||||||
|
To: alice@tiscali.it
|
||||||
|
Subject: Delivery status notification
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: multipart/report; boundary="------------I305M09060309060P_896715922369450"
|
||||||
|
|
||||||
|
This is a multi-part message in MIME format.
|
||||||
|
|
||||||
|
--------------I305M09060309060P_896715922369450
|
||||||
|
Content-Type: text/plain; charset=UTF-8;
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
This is an automatically generated Delivery Status Notification.
|
||||||
|
|
||||||
|
Delivery to the following recipients was aborted after 2 second(s):
|
||||||
|
|
||||||
|
* shenauithz@testrun.org
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------I305M09060309060P_896715922369450
|
||||||
|
Content-Type: message/delivery-status; charset=UTF-8;
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Reporting-MTA: dns; michael.mail.tiscali.it [213.205.33.13]
|
||||||
|
Received-From-MTA: dns; localhost [146.241.100.150]
|
||||||
|
Arrival-Date: Mon, 15 Jun 2020 16:02:23 +0000
|
||||||
|
|
||||||
|
|
||||||
|
Final-recipient: rfc822; shenauithz@testrun.org
|
||||||
|
Action: failed
|
||||||
|
Status: 5.1.1
|
||||||
|
Diagnostic-Code: smtp; 550 5.1.1 <shenauithz@testrun.org>: Recipient address rejected: User unknown in virtual mailbox table
|
||||||
|
Last-attempt-Date: Mon, 15 Jun 2020 16:02:25 +0000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------I305M09060309060P_896715922369450
|
||||||
|
Content-Type: text/rfc822-headers; Content-Transfer-Encoding: 8bit
|
||||||
|
Content-Disposition: attachment
|
||||||
|
|
||||||
|
x-auth-user: alice@tiscali.it
|
||||||
|
Chat-Disposition-Notification-To: alice@tiscali.it
|
||||||
|
Chat-User-Avatar: avatar.jpg
|
||||||
|
Subject: =?utf-8?q?Message_from_=F0=9F=8F=9E=EF=B8=8F_Mefiscali?=
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Date: Mon, 15 Jun 2020 16:02:22 +0000
|
||||||
|
X-Mailer: Delta Chat Core 1.35.0/Android 1.9.5
|
||||||
|
Chat-Version: 1.0
|
||||||
|
Autocrypt: addr=alice@tiscali.it; prefer-encrypt=mutual;
|
||||||
|
keydata=xjMEXtFRUBYJKwYBBAHaRw8BAQdA5sqHJqkWlveCgsNd0rtwtZrT1mmo1gwaGC5+WheYk5
|
||||||
|
nNHTxhbmRyZWFzLmxhdHRtYW5uQHRpc2NhbGkuaXQ+wosEEBYIADMCGQEFAl7RUXoCGwMECwkIBwYV
|
||||||
|
CAkKCwIDFgIBFiEEJUsbRIjZEaRNAs1p1Z5M1vshkrAACgkQ1Z5M1vshkrAAaAEA4wssXeU2IXnowv
|
||||||
|
iu3zmcNzDgE4HdmW4RFyqJC6bgxXQA/3aTfE/PhQgZvi6RrKMvP4zygXpD9y+3ydIZP88Bp8kIzjgE
|
||||||
|
XtFRUBIKKwYBBAGXVQEFAQEHQKaAwlP0j9m0aYsCtO+qD9+foH0kiTN5BWDe5YcZrckVAwEIB8J4BB
|
||||||
|
gWCAAgBQJe0VF6AhsMFiEEJUsbRIjZEaRNAs1p1Z5M1vshkrAACgkQ1Z5M1vshkrA1JgEAkscCQlps
|
||||||
|
h3ZxlLqBlbf2+85f4S4aGQfFPtIYEkKKhYEBAJbQulNNp9UarvhfyBiIdvkBVDcCnJZwzbORqp8RM0 gC
|
||||||
|
Message-ID: <Mr.un2NYERi1RM.lbQ5F9q-QyJ@tiscali.it>
|
||||||
|
To: <shenauithz@testrun.org>
|
||||||
|
From: =?utf-8?b?8J+Pnu+4jyBNZWZpc2NhbGk=?= <alice@tiscali.it>
|
||||||
|
Content-Type: multipart/mixed; boundary="5uAmYQux1HZxxriijTjjKSp4DMoJwq"
|
||||||
|
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tiscali.it; s=smtp;
|
||||||
|
t=1592236943; bh=C3taz+zuSre1ko5Q5CzGPmbyrgegKYBClx/3Dv7t/Xw=;
|
||||||
|
h=Subject:Date:To:From;
|
||||||
|
b=LrcfLfrQoemOkHTQsqR8MExqNlx5KPYNFWhwlBWylvVc5GlmlhzqM6SAVKd0NVsKE
|
||||||
|
gVRlBId5FvnlwoJ2WZnXaw/+3lWKilMTuzzQ1oFGvLnZ1XUaUEfuliIv+9NI79dJWX
|
||||||
|
+S3jsSgzJMJc9+fO6s9bJsX1EHQ2a8GXNbwDtLXs=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------I305M09060309060P_896715922369450--
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user