bump mail_parser 0.5.0 -> 0.8.2 #5

Merged
quentin merged 6 commits from bump_mail_parser into main 2023-03-09 15:53:05 +00:00
201 changed files with 280 additions and 125 deletions

13
Cargo.lock generated
View file

@ -50,8 +50,8 @@ dependencies = [
"log",
"mail-parser 0.4.8 (git+https://github.com/superboum/mail-parser?branch=feature/no_decode)",
"mail-parser 0.4.8 (git+https://github.com/superboum/mail-parser?rev=db61a03)",
"mail-parser 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"mail-parser 0.5.0 (git+https://github.com/stalwartlabs/mail-parser?branch=main)",
"mail-parser 0.5.0",
"mail-parser 0.8.2",
"rand",
"rmp-serde",
"rpassword",
@ -1355,8 +1355,7 @@ dependencies = [
[[package]]
name = "mail-parser"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e25e9e9cd1360538e0ca33499f12fd180f3611d7a8e1a50b7e4e43a4c5dd4b7"
source = "git+https://github.com/stalwartlabs/mail-parser?branch=main#bb0e3366daabec8d2f94afd22c661394f9ba7cbe"
dependencies = [
"encoding_rs",
"serde",
@ -1364,11 +1363,11 @@ dependencies = [
[[package]]
name = "mail-parser"
version = "0.5.0"
source = "git+https://github.com/stalwartlabs/mail-parser?branch=main#bb0e3366daabec8d2f94afd22c661394f9ba7cbe"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4158a1c18963244e083888b21465846dfb68d6170850ed1ab4742edd57c9d47"
dependencies = [
"encoding_rs",
"serde",
]
[[package]]

View file

@ -21,7 +21,7 @@ itertools = "0.10"
lazy_static = "1.4"
ldap3 = { version = "0.10", default-features = false, features = ["tls"] }
log = "0.4"
mail-parser = "0.5"
mail-parser = "0.8.2"
rusoto_core = "0.48.0"
rusoto_credential = "0.48.0"
rusoto_s3 = "0.48"

View file

@ -308,7 +308,7 @@ impl MailboxView {
)))
}
FetchAttribute::Rfc822Text => {
let rp = parsed.get_root_part();
let rp = parsed.root_part();
let r = parsed
.raw_message
.get(rp.offset_body..rp.offset_end)
@ -332,10 +332,10 @@ impl MailboxView {
attributes.push(MessageAttribute::Envelope(message_envelope(&parsed)))
}
FetchAttribute::Body => attributes.push(MessageAttribute::Body(
build_imap_email_struct(&parsed, parsed.get_root_part())?,
build_imap_email_struct(&parsed, parsed.root_part())?,
)),
FetchAttribute::BodyStructure => attributes.push(MessageAttribute::Body(
build_imap_email_struct(&parsed, parsed.get_root_part())?,
build_imap_email_struct(&parsed, parsed.root_part())?,
)),
FetchAttribute::BodyExt {
section,
@ -610,26 +610,26 @@ fn string_to_flag(f: &str) -> Option<Flag> {
//@FIXME return an error if the envelope is invalid instead of panicking
//@FIXME some fields must be defaulted if there are not set.
fn message_envelope(msg: &mail_parser::Message<'_>) -> Envelope {
let from = convert_addresses(msg.get_from()).unwrap_or(vec![]);
let from = convert_addresses(msg.from()).unwrap_or(vec![]);
Envelope {
date: NString(
msg.get_date()
.map(|d| IString::try_from(d.to_iso8601()).unwrap()),
msg.date()
.map(|d| IString::try_from(d.to_rfc3339()).unwrap()),
),
subject: NString(
msg.get_subject()
msg.subject()
.map(|d| IString::try_from(d.to_string()).unwrap()),
),
from: from.clone(),
sender: convert_addresses(msg.get_sender()).unwrap_or(from.clone()),
reply_to: convert_addresses(msg.get_reply_to()).unwrap_or(from.clone()),
to: convert_addresses(msg.get_to()).unwrap_or(vec![]),
cc: convert_addresses(msg.get_cc()).unwrap_or(vec![]),
bcc: convert_addresses(msg.get_bcc()).unwrap_or(vec![]),
sender: convert_addresses(msg.sender()).unwrap_or(from.clone()),
reply_to: convert_addresses(msg.reply_to()).unwrap_or(from.clone()),
to: convert_addresses(msg.to()).unwrap_or(vec![]),
cc: convert_addresses(msg.cc()).unwrap_or(vec![]),
bcc: convert_addresses(msg.bcc()).unwrap_or(vec![]),
in_reply_to: NString(None), // @TODO
message_id: NString(
msg.get_message_id()
msg.message_id()
.map(|d| IString::try_from(d.to_string()).unwrap()),
),
}
@ -642,12 +642,6 @@ fn convert_addresses(a: &mail_parser::HeaderValue<'_>) -> Option<Vec<Address>> {
Some(l.iter().map(|a| convert_address(a)).collect())
}
mail_parser::HeaderValue::Empty => None,
mail_parser::HeaderValue::Collection(c) => Some(
c.iter()
.map(|l| convert_addresses(l).unwrap_or(vec![]))
.flatten()
.collect(),
),
_ => {
tracing::warn!("Invalid address header");
None
@ -698,10 +692,10 @@ fn build_imap_email_struct<'a>(msg: &Message<'a>, part: &MessagePart<'a>) -> Res
match &part.body {
PartType::Multipart(parts) => {
let subtype = IString::try_from(
part.headers_rfc
.get(&RfcHeader::ContentType)
part.headers
.rfc(&RfcHeader::ContentType)
.ok_or(anyhow!("Content-Type is missing but required here."))?
.get_content_type()
.content_type()
.c_subtype
.as_ref()
.ok_or(anyhow!("Content-Type invalid, missing subtype"))?
@ -741,7 +735,7 @@ fn build_imap_email_struct<'a>(msg: &Message<'a>, part: &MessagePart<'a>) -> Res
// MUST be defined and hence has no default. But mail-parser does not make any
// difference between MIME and raw emails, hence raw emails have no subtypes.
let subtype = part
.get_content_type()
.content_type()
.map(|h| h.c_subtype.as_ref())
.flatten()
.map(|st| IString::try_from(st.to_string()).ok())
@ -770,7 +764,7 @@ fn build_imap_email_struct<'a>(msg: &Message<'a>, part: &MessagePart<'a>) -> Res
let (_, basic) = headers_to_basic_fields(&part, bp.len())?;
let ct = part
.get_content_type()
.content_type()
.ok_or(anyhow!("Content-Type is missing but required here."))?;
let type_ = IString::try_from(ct.c_type.as_ref().to_string()).map_err(|_| {
@ -795,31 +789,22 @@ fn build_imap_email_struct<'a>(msg: &Message<'a>, part: &MessagePart<'a>) -> Res
extension: None,
})
}
PartType::Message(bp) => {
// @NOTE in some cases mail-parser does not parse the MessageAttachment but
// provide it as raw body. By looking quickly at the code, it seems that the
// attachment is not parsed when mail-parser encounters some encoding problems.
match &bp {
MessageAttachment::Parsed(inner) => {
// @FIXME+BUG mail-parser does not handle ways when a MIME message contains
// a raw email and wrongly take its delimiter. The size and number of
// lines returned in that case are wrong. A patch to mail-parser is
// needed to fix this.
let (_, basic) = headers_to_basic_fields(&part, inner.raw_message.len())?;
PartType::Message(inner) => {
let (_, basic) = headers_to_basic_fields(&part, inner.raw_message().len())?;
// We do not count the number of lines but the number of line
// feeds to have the same behavior as Dovecot and Cyrus.
// 2 lines = 1 line feed.
let nol = inner.raw_message.iter().filter(|&c| c == &b'\n').count();
// We do not count the number of lines but the number of line
// feeds to have the same behavior as Dovecot and Cyrus.
// 2 lines = 1 line feed.
let nol = inner.raw_message().iter().filter(|&c| c == &b'\n').count();
Ok(BodyStructure::Single {
body: FetchBody {
basic,
specific: SpecificFields::Message {
envelope: message_envelope(inner),
body_structure: Box::new(build_imap_email_struct(
&inner,
inner.get_root_part(),
Ok(BodyStructure::Single {
body: FetchBody {
basic,
specific: SpecificFields::Message {
envelope: message_envelope(inner),
body_structure: Box::new(build_imap_email_struct(
&inner,
inner.root_part(),
)?),
// @FIXME This solution is bad for 2 reasons:
@ -829,42 +814,10 @@ fn build_imap_email_struct<'a>(msg: &Message<'a>, part: &MessagePart<'a>) -> Res
// - It should be done during parsing, we are iterating twice on
// the same data which results in some wastes.
number_of_lines: u32::try_from(nol)?,
},
},
extension: None,
})
}
MessageAttachment::Raw(raw_msg) => {
let (_, basic) = headers_to_basic_fields(&part, raw_msg.len())?;
let ct = part
.get_content_type()
.ok_or(anyhow!("Content-Type is missing but required here."))?;
let type_ =
IString::try_from(ct.c_type.as_ref().to_string()).map_err(|_| {
anyhow!("Unable to build IString from given Content-Type type given")
})?;
let subtype = IString::try_from(
ct.c_subtype
.as_ref()
.ok_or(anyhow!("Content-Type invalid, missing subtype"))?
.to_string(),
)
.map_err(|_| {
anyhow!("Unable to build IString from given Content-Type subtype given")
})?;
Ok(BodyStructure::Single {
body: FetchBody {
basic,
specific: SpecificFields::Basic { type_, subtype },
},
extension: None,
})
}
}
},
},
extension: None,
})
}
}
}
@ -896,7 +849,7 @@ struct SpecialAttrs<'a> {
fn attrs_to_params<'a>(bp: &impl MimeHeaders<'a>) -> (SpecialAttrs, Vec<(IString, IString)>) {
// Try to extract Content-Type attributes from headers
let attrs = match bp
.get_content_type()
.content_type()
.map(|c| c.attributes.as_ref())
.flatten()
{
@ -942,13 +895,13 @@ fn headers_to_basic_fields<'a>(
parameter_list,
id: NString(
bp.get_content_id()
bp.content_id()
.map(|ci| IString::try_from(ci.to_string()).ok())
.flatten(),
),
description: NString(
bp.get_content_description()
bp.content_description()
.map(|cd| IString::try_from(cd.to_string()).ok())
.flatten(),
),
@ -959,7 +912,7 @@ fn headers_to_basic_fields<'a>(
* Content-Transfer-Encoding header field is not present.
*/
content_transfer_encoding: bp
.get_content_transfer_encoding()
.content_transfer_encoding()
.map(|h| IString::try_from(h.to_string()).ok())
.flatten()
.unwrap_or(unchecked_istring("7bit")),
@ -976,7 +929,7 @@ fn get_message_section<'a>(
) -> Result<Cow<'a, [u8]>> {
match section {
Some(FetchSection::Text(None)) => {
let rp = parsed.get_root_part();
let rp = parsed.root_part();
Ok(parsed
.raw_message
.get(rp.offset_body..rp.offset_end)
@ -987,7 +940,7 @@ fn get_message_section<'a>(
}
Some(FetchSection::Text(Some(part))) => {
map_subpart_msg(parsed, part.0.as_slice(), |part_msg| {
let rp = part_msg.get_root_part();
let rp = part_msg.root_part();
Ok(part_msg
.raw_message
.get(rp.offset_body..rp.offset_end)
@ -1002,7 +955,7 @@ fn get_message_section<'a>(
parsed,
part.as_ref().map(|p| p.0.as_slice()).unwrap_or(&[]),
|part_msg| {
let rp = part_msg.get_root_part();
let rp = part_msg.root_part();
Ok(part_msg
.raw_message
.get(..rp.offset_body)
@ -1031,13 +984,13 @@ fn get_message_section<'a>(
part.as_ref().map(|p| p.0.as_slice()).unwrap_or(&[]),
|part_msg| {
let mut ret = vec![];
for (hn, hv) in part_msg.get_raw_headers() {
for (hn, hv) in part_msg.headers_raw() {
if fields
.as_slice()
.iter()
.any(|x| (*x == hn.as_str().as_bytes()) ^ invert)
.any(|x| (*x == hn.as_bytes()) ^ invert)
{
ret.extend(hn.as_str().as_bytes());
ret.extend(hn.as_bytes());
ret.extend(b": ");
ret.extend(hv.as_bytes());
}
@ -1051,18 +1004,17 @@ fn get_message_section<'a>(
let bytes = match &part.body {
PartType::Text(p) | PartType::Html(p) => p.as_bytes().to_vec(),
PartType::Binary(p) | PartType::InlineBinary(p) => p.to_vec(),
PartType::Message(MessageAttachment::Raw(r)) => r.to_vec(),
PartType::Message(MessageAttachment::Parsed(p)) => p.raw_message.to_vec(),
PartType::Message(p) => p.raw_message.to_vec(),
PartType::Multipart(_) => bail!("Multipart part has no body"),
};
Ok(bytes.into())
}),
Some(FetchSection::Mime(part)) => map_subpart(parsed, part.0.as_slice(), |msg, part| {
let mut ret = vec![];
for (name, body) in part.headers_raw.iter() {
ret.extend(name.as_str().as_bytes());
for head in part.headers.iter() {
ret.extend(head.name.as_str().as_bytes());
ret.extend(b": ");
ret.extend(&msg.raw_message[body.start..body.end]);
ret.extend(&msg.raw_message[head.offset_start..head.offset_end]);
}
ret.extend(b"\r\n");
Ok(ret.into())
@ -1082,11 +1034,8 @@ where
.parts
.get(path[0].get() as usize - 1)
.ok_or(anyhow!("No such subpart: {}", path[0]))?;
if let PartType::Message(msg_attch) = &part.body {
let part_msg = msg_attch
.get_message()
.ok_or(anyhow!("Cannot parse subpart: {}", path[0]))?;
map_subpart_msg(&part_msg, &path[1..], f)
if let PartType::Message(msg_attach) = &part.body {
map_subpart_msg(&msg_attach, &path[1..], f)
} else {
bail!("Subpart is not a message: {}", path[0]);
}
@ -1107,11 +1056,8 @@ where
if path.len() == 1 {
f(msg, part)
} else {
if let PartType::Message(msg_attch) = &part.body {
let part_msg = msg_attch
.get_message()
.ok_or(anyhow!("Cannot parse subpart: {}", path[0]))?;
map_subpart(&part_msg, &path[1..], f)
if let PartType::Message(msg_attach) = &part.body {
map_subpart(&msg_attach, &path[1..], f)
} else {
bail!("Subpart is not a message: {}", path[0]);
}
@ -1135,15 +1081,19 @@ mod tests {
"tests/emails/dxflrs/0001_simple",
"tests/emails/dxflrs/0002_mime",
"tests/emails/dxflrs/0003_mime-in-mime",
// broken: numbers of lines/characters not counted correctly
"tests/emails/dxflrs/0004_msg-in-msg",
// wrong. base64?
//"tests/emails/dxflrs/0005_mail-parser-readme",
// broken
//"tests/emails/dxflrs/0006_single-mime",
"tests/emails/dxflrs/0006_single-mime",
// panic - thread 'imap::mailbox_view::tests::fetch_body' panicked at 'range end index 128 out of range for slice of length 127', src/imap/mailbox_view.rs:798:64
//"tests/emails/dxflrs/0007_raw_msg_in_rfc822",
//"tests/emails/rfc/000", // broken
// broken, wrong mimetype text, should be audio
// "tests/emails/rfc/000",
// "tests/emails/rfc/001", // broken
// "tests/emails/rfc/002", // broken: dovecot adds \r when it is missing and count is as
// a character. Difference on how lines are counted too.
@ -1161,7 +1111,7 @@ mod tests {
let message = Message::parse(&txt).unwrap();
let mut resp = Vec::new();
MessageAttribute::Body(build_imap_email_struct(&message, message.get_root_part())?)
MessageAttribute::Body(build_imap_email_struct(&message, message.root_part())?)
.encode(&mut resp);
let resp_str = String::from_utf8_lossy(&resp).to_lowercase();
@ -1169,7 +1119,7 @@ mod tests {
let exp_no_parenthesis = &exp[1..exp.len() - 1];
let exp_str = String::from_utf8_lossy(exp_no_parenthesis).to_lowercase();
println!("aerogramme: {}\ndovecot: {}", resp_str, exp_str);
println!("aerogramme: {}\n\ndovecot: {}\n\n", resp_str, exp_str);
//println!("\n\n {} \n\n", String::from_utf8_lossy(&resp));
assert_eq!(resp_str, exp_str);
}

View file

@ -308,7 +308,7 @@ impl MailboxInternal {
},
async {
// Save mail meta
let mail_root = mail.parsed.get_root_part();
let mail_root = mail.parsed.root_part();
let meta = MailMeta {
internaldate: now_msec(),
headers: mail.raw[..mail_root.offset_body].to_vec(),
@ -359,7 +359,7 @@ impl MailboxInternal {
},
async {
// Save mail meta
let mail_root = mail.parsed.get_root_part();
let mail_root = mail.parsed.root_part();
let meta = MailMeta {
internaldate: now_msec(),
headers: mail.raw[..mail_root.offset_body].to_vec(),

View file

@ -13,8 +13,12 @@ docker-compose up
- listen on :994, run `openssl s_client -connect 127.0.0.1:994`
- login with `A LOGIN test@example.com pass`
- Cyrus
- lient on :143, run `nc 127.0.0.1 143`
- listen on :143, run `nc 127.0.0.1 143`
- login with `A LOGIN test pass`
- Stalwart
- listen on :1993, run `openssl s_client -connect 127.0.0.1:993`
- login with `A LOGIN test@example.com pass`
- note: not packaged in docker yet...
Other IMAP servers we could add:
- WildDuck (own node.js imap implementation)

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 49 1))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 49 1 "ffd9b6292b7ea945513c94e06a2ce185" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 9 1) ("text" "html" ("charset" "utf-8") NIL NIL "8bit" 14 0) "alternative"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 9 1 "543c0bb2e3c0ad1d4c72a74b98b8a85c" NIL NIL NIL) ("text" "html" ("charset" "utf-8") NIL NIL "8bit" 14 0 "8a900064824e787edc6797b9d1b4157d" NIL NIL NIL) "alternative" ("boundary" "festivus") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 9 1) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0) "mixed") ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 9 1 "543c0bb2e3c0ad1d4c72a74b98b8a85c" NIL NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0 "f15d33a1a1c5dc564c0c16959a296c00" NIL NIL NIL) "mixed" ("boundary" "child") NIL NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0 "7e2f3ae2744db56ba99254f7c7ed9687" NIL NIL NIL) "mixed" ("boundary" "parent") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0) ("message" "rfc822" NIL NIL NIL NIL 129 (NIL "Welcome to Aerogramme!!" (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) NIL NIL NIL NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 49 1) 0) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0 "9cdbde8e26efc28156e810237b67b98c" NIL NIL NIL) ("message" "rfc822" NIL NIL NIL NIL 129 (NIL "Welcome to Aerogramme!!" (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) NIL NIL NIL NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 49 1 "ffd9b6292b7ea945513c94e06a2ce185" NIL NIL NIL) 0 "a2d53b3dede0e8f7b3f62a4b8ed8c8f9" NIL NIL NIL) "mixed" ("boundary" "delim") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "html" ("charset" "us-ascii") NIL NIL "base64" 242 3) ("message" "rfc822" NIL NIL NIL NIL 732 (NIL "Exporting my book about coffee tables" (("Cosmo Kramer" NIL "kramer" "kramerica.com")) (("Cosmo Kramer" NIL "kramer" "kramerica.com")) (("Cosmo Kramer" NIL "kramer" "kramerica.com")) NIL NIL NIL NIL NIL) (("text" "plain" ("charset" "utf-16") NIL NIL "quoted-printable" 231 3) ("image" "gif" ("name" "Book about coffe tables.gif") NIL NIL "Base64" 56) "mixed") 0) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "html" ("charset" "us-ascii") NIL NIL "base64" 242 3 "a1906bc9c7cba319b7a907b0f36a13d4" NIL NIL NIL) ("message" "rfc822" NIL NIL NIL NIL 732 (NIL "Exporting my book about coffee tables" (("Cosmo Kramer" NIL "kramer" "kramerica.com")) (("Cosmo Kramer" NIL "kramer" "kramerica.com")) (("Cosmo Kramer" NIL "kramer" "kramerica.com")) NIL NIL NIL NIL NIL) (("text" "plain" ("charset" "utf-16") NIL NIL "quoted-printable" 231 3 "2b7039def3f1ac893044b2281c2cf75e" NIL NIL NIL) ("image" "gif" ("name" "Book about coffe tables.gif") NIL NIL "Base64" 56 "d40fa7f401e9dc2df56cbb740d65ff52" ("attachment" ()) NIL NIL) "mixed" ("boundary" "giddyup") NIL NIL NIL) 0 "127f062ee497d93fe570b8f88ba41103" NIL NIL NIL) "mixed" ("boundary" "festivus") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0) "alternative"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 7 0 "9cdbde8e26efc28156e810237b67b98c" NIL NIL NIL) "alternative" ("boundary" "festivus") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("message" "rfc822" NIL NIL NIL NIL 127 (NIL "Welcome to Aerogramme!!" (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) NIL NIL NIL NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 47 0) 0) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("message" "rfc822" NIL NIL NIL NIL 127 (NIL "Welcome to Aerogramme!!" (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) (("Garage team" NIL "garagehq" "deuxfleurs.fr")) NIL NIL NIL NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 47 0 "888e7b08e816955349c85db35da89630" NIL NIL NIL) 0 "acdcc32276ce167e9813cd589684d991" NIL NIL NIL) "mixed" ("boundary" "delim") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("image" "png" ("name" "redball.png") NIL NIL "base64" 1994))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("image" "png" ("name" "redball.png") NIL NIL "base64" 1994 "37f650e110fc1e33c7fff6580d5eeef1" ("attachment" ("filename" "redball.png")) NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "utf-7") NIL NIL "quoted-printable" 897 19))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "utf-7") NIL NIL "quoted-printable" 897 19 "b8a53054ee0c616c60265a3617a353a5" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1001 25))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1001 25 "99b26f1a019246d514b85bab4038d86a" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 997 23) "alternative"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16 "e4d418b6e9f4dbd62809b74b811246a7" NIL NIL NIL) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 997 23 "3042ac8495670f3f7e9d8c7315a90c39" NIL NIL NIL) "alternative" ("boundary" "=====================_714967308==_.ALT") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 768 8))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 768 8 "33ee27b69c4f8c6c51f02bff37f38f4a" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "utf-7") NIL NIL "quoted-printable" 895 18))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "utf-7") NIL NIL "quoted-printable" 895 18 "0c6c2bb595ad676c120aeb6da98956c0" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816 "3cda6111307ed1b70869902a649fc627" ("attachment" ("filename" "blueball.png")) NIL NIL) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992 "9ab8d3f2919159b36196a9addb0595f9" ("attachment" ("filename" "redball.png")) NIL NIL) "mixed" ("boundary" "----=_NextPart_000_0004_01BFC037.28F2FA90") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 811 17))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 811 17 "9697f984a3e63af99de12bc7e2493be3" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 799 15) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1778) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 799 15 "dffa64383f7937a7e0523d5c4c866742" NIL NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816 "3cda6111307ed1b70869902a649fc627" ("attachment" ("filename" "blueball.png")) NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1778 "262bf995464d74d0e5b276313b474e2d" ("attachment" ("filename" "greenball.png")) NIL NIL) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992 "9ab8d3f2919159b36196a9addb0595f9" ("attachment" ("filename" "redball.png")) NIL NIL) "mixed" ("boundary" "----=_NextPart_000_0002_01BFC036.AE309650") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1" "format" "flowed") NIL NIL "quoted-printable" 827 23))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1" "format" "flowed") NIL NIL "quoted-printable" 827 23 "06a83091cbfcc9730a4cb709d733589b" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 751 10))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 751 10 "51426e0cd88a34909f1db4b2d419163c" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 813 18))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 813 18 "28683982b3c0313003e588417d859a58" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "Windows-1252") NIL NIL "quoted-printable" 809 16))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "Windows-1252") NIL NIL "quoted-printable" 809 16 "519f35670439561a9c5edb5987a29d8f" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 754 17))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 754 17 "7128e53dcbc2adef2a72a31d9ec16435" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 801 16) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1190 27) "alternative"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 801 16 "a7d006003cbfba52de75eb678d6c4f60" NIL NIL NIL) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1190 27 "d1dd8af81c6a8d0ef4f1928b594b281f" NIL NIL NIL) "alternative" ("boundary" "----=_NextPart_000_0005_01BFC037.799BEF60") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 833 16) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1230 26) "alternative") ("image" "png" ("name" "2aa3ed95.png") "<4.2.0.58.20000519003556.00a918e0@pop.example.com.2>" NIL "base64" 1814) ("image" "png" ("name" "2aa3edd1.png") "<4.2.0.58.20000519003556.00a918e0@pop.example.com.3>" NIL "base64" 1990) "related") ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1814) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1776) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 833 16 "d28296b9799d9521dafc255075108271" NIL NIL NIL) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1230 26 "d545ba0ee52aa926cec2c8d023558264" NIL NIL NIL) "alternative" ("boundary" "=====================_715392550==_.ALT") NIL NIL NIL) ("image" "png" ("name" "2aa3ed95.png") "<4.2.0.58.20000519003556.00a918e0@pop.example.com.2>" NIL "base64" 1814 "d4326c23ab037f97d1839deaeeb9df22" ("inline" ("filename" "2aa3ed95.png")) NIL NIL) ("image" "png" ("name" "2aa3edd1.png") "<4.2.0.58.20000519003556.00a918e0@pop.example.com.3>" NIL "base64" 1990 "1577b0b5cc127cbdb47c68349709b939" ("inline" ("filename" "2aa3edd1.png")) NIL NIL) "related" ("type" "multipart/alternative" "boundary" "=====================_715392540==_.REL") NIL NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1814 "d4326c23ab037f97d1839deaeeb9df22" ("attachment" ("filename" "blueball.png")) NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1776 "a7bd1ed2cd36d0576a0d6b69e998e37b" ("attachment" ("filename" "greenball.png")) NIL NIL) "mixed" ("boundary" "=====================_715392540==_") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16) ("application" "mac-binhex40" ("name" "blueball.png") NIL NIL NIL 1929) ("application" "mac-binhex40" ("name" "HasenundFr<46>sche.txt") NIL NIL NIL 1131) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16 "e4d418b6e9f4dbd62809b74b811246a7" NIL NIL NIL) ("application" "mac-binhex40" ("name" "blueball.png") NIL NIL NIL 1929 "fa4e7925c8778cb9a4349bed7c7e7135" ("attachment" ("filename" "blueball.png")) NIL NIL) ("application" "mac-binhex40" ("name" "HasenundFr<46>sche.txt") NIL NIL NIL 1131 "14801ab055f8733a28b46a24dbe979c8" ("attachment" ("filename" "HasenundFr<46>sche.txt")) NIL NIL) "mixed" ("boundary" "=====================_716373961==_") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 764 6) ("image" "png" ("name" "greenball.png") NIL NIL "x-uuencode" 1854) ("image" "png" ("name" "blueball.png") NIL NIL "x-uuencode" 1892) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 764 6 "db214f1a330a0a06168c1375622c1f35" NIL NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "x-uuencode" 1854 "d72546f9299d3703ea2079239c7a2778" ("attachment" ("filename" "greenball.png")) NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "x-uuencode" 1892 "844e058d579021bb69992217807fcc1a" ("attachment" ("filename" "blueball.png")) NIL NIL) "mixed" ("boundary" "=====================_716177458==_") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 836 18) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1238 27) "alternative") ("image" "png" ("name" "blueball.png") "<4.2.0.58.20000519003143.00a8d550@pop.example.com.0>" NIL "base64" 1814) ("image" "png" ("name" "redball.png") "<4.2.0.58.20000519003143.00a8d550@pop.example.com.1>" NIL "base64" 1990) "related"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 836 18 "d1f7796e627cd5c2a7b7e063c0f3bf0f" NIL NIL NIL) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1238 27 "04885a938cdd849bbd3ba8c1731957c0" NIL NIL NIL) "alternative" ("boundary" "=====================_715157141==_.ALT") NIL NIL NIL) ("image" "png" ("name" "blueball.png") "<4.2.0.58.20000519003143.00a8d550@pop.example.com.0>" NIL "base64" 1814 "d4326c23ab037f97d1839deaeeb9df22" ("inline" ("filename" "blueball.png")) NIL NIL) ("image" "png" ("name" "redball.png") "<4.2.0.58.20000519003143.00a8d550@pop.example.com.1>" NIL "base64" 1990 "1577b0b5cc127cbdb47c68349709b939" ("inline" ("filename" "redball.png")) NIL NIL) "related" ("type" "multipart/alternative" "boundary" "=====================_715157131==_.REL") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 801 16) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1190 27) "alternative") ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1778) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 801 16 "a7d006003cbfba52de75eb678d6c4f60" NIL NIL NIL) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1190 27 "604b5bc182795cf94bdbfcece7c8f555" NIL NIL NIL) "alternative" ("boundary" "----=_NextPart_001_0009_01BFC037.FDD8EE90") NIL NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1778 "262bf995464d74d0e5b276313b474e2d" ("attachment" ("filename" "greenball.png")) NIL NIL) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992 "9ab8d3f2919159b36196a9addb0595f9" ("attachment" ("filename" "redball.png")) NIL NIL) "mixed" ("boundary" "----=_NextPart_000_0008_01BFC037.FDD8EE90") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 754 17))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 754 17 "7128e53dcbc2adef2a72a31d9ec16435" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 805 18) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1397 31) "alternative") ("image" "png" ("name" "blueball.png") "<938014623@17052000-0f9b>" NIL "base64" 1816) "related") ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1778) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 805 18 "8eafcdc1359d10ac4d1fdd526e1b6262" NIL NIL NIL) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1397 31 "ef26ab1c5b98134a9e32e3d335eb19f2" NIL NIL NIL) "alternative" ("boundary" "----=_NextPart_002_0012_01BFC038.B91BC650") NIL NIL NIL) ("image" "png" ("name" "blueball.png") "<938014623@17052000-0f9b>" NIL "base64" 1816 "3cda6111307ed1b70869902a649fc627" NIL NIL NIL) "related" ("boundary" "----=_NextPart_001_0011_01BFC038.B91BC650") NIL NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1778 "262bf995464d74d0e5b276313b474e2d" ("attachment" ("filename" "greenball.png")) NIL NIL) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992 "9ab8d3f2919159b36196a9addb0595f9" ("attachment" ("filename" "redball.png")) NIL NIL) "mixed" ("boundary" "----=_NextPart_000_0010_01BFC038.B91BC650") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "base64" 1028 16))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "base64" 1028 16 "1804e49c49ec52f7f9ca70379c19166b" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1814) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 804 17) ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16 "e4d418b6e9f4dbd62809b74b811246a7" NIL NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1814 "d4326c23ab037f97d1839deaeeb9df22" ("attachment" ("filename" "blueball.png")) NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 804 17 "e958f6a730a13bc65b70fc70540c5741" ("attachment" ("filename" "farmerandstork.txt")) NIL NIL) ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16 "e4d418b6e9f4dbd62809b74b811246a7" ("attachment" ("filename" "HasenundFr<46>sche.txt")) NIL NIL) "mixed" ("boundary" "=====================_716541962==_") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1239 27) ("image" "png" ("name" "2aa48eb6.png") "<4.2.0.58.20000519003735.00a8d7e0@pop.example.com.2>" NIL "base64" 1814) ("image" "png" ("name" "2aa48ec0.png") "<4.2.0.58.20000519003735.00a8d7e0@pop.example.com.3>" NIL "base64" 1990) "related"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1239 27 "353effd469ba5d3b5a1de9ee4f20f658" NIL NIL NIL) ("image" "png" ("name" "2aa48eb6.png") "<4.2.0.58.20000519003735.00a8d7e0@pop.example.com.2>" NIL "base64" 1814 "d4326c23ab037f97d1839deaeeb9df22" ("inline" ("filename" "2aa48eb6.png")) NIL NIL) ("image" "png" ("name" "2aa48ec0.png") "<4.2.0.58.20000519003735.00a8d7e0@pop.example.com.3>" NIL "base64" 1990 "1577b0b5cc127cbdb47c68349709b939" ("inline" ("filename" "2aa48ec0.png")) NIL NIL) "related" ("type" "text/html" "boundary" "=====================_715429112==_.REL") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1230 26) ("image" "png" ("name" "2aa51367.png") "<4.2.0.58.20000519003809.00a85140@pop.example.com.2>" NIL "base64" 1814) ("image" "png" ("name" "2aa51371.png") "<4.2.0.58.20000519003809.00a85140@pop.example.com.3>" NIL "base64" 1990) "related") ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1814) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1776) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1230 26 "0c3e5fc05601501037a613d4c6d470f0" NIL NIL NIL) ("image" "png" ("name" "2aa51367.png") "<4.2.0.58.20000519003809.00a85140@pop.example.com.2>" NIL "base64" 1814 "d4326c23ab037f97d1839deaeeb9df22" ("inline" ("filename" "2aa51367.png")) NIL NIL) ("image" "png" ("name" "2aa51371.png") "<4.2.0.58.20000519003809.00a85140@pop.example.com.3>" NIL "base64" 1990 "1577b0b5cc127cbdb47c68349709b939" ("inline" ("filename" "2aa51371.png")) NIL NIL) "related" ("type" "text/html" "boundary" "=====================_715462801==_.REL") NIL NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1814 "d4326c23ab037f97d1839deaeeb9df22" ("attachment" ("filename" "blueball.png")) NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1776 "a7bd1ed2cd36d0576a0d6b69e998e37b" ("attachment" ("filename" "greenball.png")) NIL NIL) "mixed" ("boundary" "=====================_715462801==_") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16) ("text" "plain" ("name" "HasenundFr<46>sche.txt" "x-mac-type" "54455854" "x-mac-creator" "74747874") NIL NIL "x-uuencode" 1088 21) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 804 17) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 16 "e4d418b6e9f4dbd62809b74b811246a7" NIL NIL NIL) ("text" "plain" ("name" "HasenundFr<46>sche.txt" "x-mac-type" "54455854" "x-mac-creator" "74747874") NIL NIL "x-uuencode" 1088 21 "ee9518c5df1ef0df01a4621bd93909ac" ("attachment" ("filename" "HasenundFr<46>sche.txt")) NIL NIL) ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 804 17 "e958f6a730a13bc65b70fc70540c5741" ("attachment" ("filename" "farmerandstork.txt")) NIL NIL) "mixed" ("boundary" "=====================_716740438==_") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 811 17))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 811 17 "9697f984a3e63af99de12bc7e2493be3" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 20) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1576 36) "alternative") ("image" "png" ("name" "blueball.png") "<823504223@17052000-0f8d>" NIL "base64" 1816) ("image" "png" ("name" "redball.png") "<823504223@17052000-0f94>" NIL "base64" 1992) "related"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 809 20 "50ee3814d16cac48941c85bcd017d5c1" NIL NIL NIL) ("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 1576 36 "ff968407256a75bb533f7acabec91f35" NIL NIL NIL) "alternative" ("boundary" "----=_NextPart_001_000D_01BFC038.5A5C8E60") NIL NIL NIL) ("image" "png" ("name" "blueball.png") "<823504223@17052000-0f8d>" NIL "base64" 1816 "3cda6111307ed1b70869902a649fc627" NIL NIL NIL) ("image" "png" ("name" "redball.png") "<823504223@17052000-0f94>" NIL "base64" 1992 "9ab8d3f2919159b36196a9addb0595f9" NIL NIL NIL) "related" ("boundary" "----=_NextPart_000_000C_01BFC038.5A5C8E60") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 771 16))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 771 16 "eaad4ba6e33253304a00d6e051087364" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 767 14) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780) ("text" "plain" ("charset" "us-ascii" "name" "hareandtoroise.txt") NIL NIL "7bit" 762 6) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 767 14 "3c8e7aa45d6a059f9d10966b734ee266" NIL NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816 "a74467a5fe49c14c6bb48ab4ad7a5d2f" ("inline" ("filename" "blueball.png")) NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780 "55dd3e55d147bf1a722b462a8e5dbb50" ("inline" ("filename" "greenball.png")) NIL NIL) ("text" "plain" ("charset" "us-ascii" "name" "hareandtoroise.txt") NIL NIL "7bit" 762 6 "b8f11127a137a5fa0f0892bb0e5aea3e" ("inline" ("filename" "hareandtoroise.txt")) NIL NIL) "mixed" ("boundary" "------------0BBC657DDC74A0B8454627FD") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "US-ASCII") NIL NIL "7bit" 41 2) ("application" "octet-stream" ("name" "redball.png") "<Pine.LNX.4.21.0005190955480.8452@penguin.example.com>" "A PNG graphic file" "BASE64" 2004) ("application" "octet-stream" ("name" "blueball.png") "<Pine.LNX.4.21.0005190955481.8452@penguin.example.com>" "A PNG graphic file" "BASE64" 1826) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "US-ASCII") NIL NIL "7bit" 41 2 "5daf991289ab39d559233bff581f9954" NIL NIL NIL) ("application" "octet-stream" ("name" "redball.png") "<Pine.LNX.4.21.0005190955480.8452@penguin.example.com>" "A PNG graphic file" "BASE64" 2004 "7fe6e826c090afa5f600e706bf947c2b" ("attachment" ("filename" "redball.png")) NIL NIL) ("application" "octet-stream" ("name" "blueball.png") "<Pine.LNX.4.21.0005190955481.8452@penguin.example.com>" "A PNG graphic file" "BASE64" 1826 "fe4518dfc0f98d74b2a34ecf96f42ffc" ("attachment" ("filename" "blueball.png")) NIL NIL) "mixed" ("boundary" "-1463757054-952513540-958744548=:8452") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 798 21) ("text" "html" ("charset" "us-ascii") NIL NIL "7bit" 949 17) "alternative") ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 798 21 "690e2ce94f3cc30b6db96299b0cdf1d6" NIL NIL NIL) ("text" "html" ("charset" "us-ascii") NIL NIL "7bit" 949 17 "f9e75f185662ddcc2c68e811f8dde51b" NIL NIL NIL) "alternative" ("boundary" "------------D74AE2393FB01D1B284AE257") NIL NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780 "55dd3e55d147bf1a722b462a8e5dbb50" ("inline" ("filename" "greenball.png")) NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816 "a74467a5fe49c14c6bb48ab4ad7a5d2f" ("inline" ("filename" "blueball.png")) NIL NIL) "mixed" ("boundary" "------------C78F594988075E36AE03C243") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "UTF-8") NIL NIL "quoted-printable" 804 22))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "UTF-8") NIL NIL "quoted-printable" 804 22 "f4c0a52222a11243cfe25effc945edfb" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "UTF-7") NIL NIL "7bit" 791 16))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "UTF-7") NIL NIL "7bit" 791 16 "854d8c9e1400de9eaa145ced26ca3559" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 824 25) (("text" "html" ("charset" "us-ascii") NIL NIL "7bit" 1122 19) ("image" "png" NIL "<part1.39235FC5.E71D8178@example.com>" NIL "base64" 1816) ("image" "png" NIL "<part2.39235FC5.E71D8178@example.com>" NIL "base64" 1992) "related") "alternative") ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 824 25 "e3b90092676e82ec521994dc2aebcd3d" NIL NIL NIL) (("text" "html" ("charset" "us-ascii") NIL NIL "7bit" 1122 19 "cdb445bb9c8cd71cb0952b666cadbc02" NIL NIL NIL) ("image" "png" NIL "<part1.39235FC5.E71D8178@example.com>" NIL "base64" 1816 "a74467a5fe49c14c6bb48ab4ad7a5d2f" ("inline" ("filename" "C:TEMPnsmailEG.png")) NIL NIL) ("image" "png" NIL "<part2.39235FC5.E71D8178@example.com>" NIL "base64" 1992 "65b8ca765ae9b0d288ffc632d72e14cb" ("inline" ("filename" "C:TEMPnsmail39.png")) NIL NIL) "related" ("boundary" "------------C02FA3D0A04E95F295FB25EB") NIL NIL NIL) "alternative" ("boundary" "------------F03F94BA73D3B9E8C1B94D92") NIL NIL NIL) ("image" "png" ("name" "redball.png") NIL NIL "base64" 1992 "65b8ca765ae9b0d288ffc632d72e14cb" ("inline" ("filename" "redball.png")) NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780 "55dd3e55d147bf1a722b462a8e5dbb50" ("inline" ("filename" "greenball.png")) NIL NIL) "mixed" ("boundary" "------------A1E83A41894D3755390B838A") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "QUOTED-PRINTABLE" 813 18))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "iso-8859-1") NIL NIL "QUOTED-PRINTABLE" 813 18 "3b3d4937ea89d5661a56edbcb749c3bf" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 1 0) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 1 0 "7215ee9c7d9dc229d2921a40e899ec5f" NIL NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816 "a74467a5fe49c14c6bb48ab4ad7a5d2f" ("inline" ("filename" "blueball.png")) NIL NIL) "mixed" ("boundary" "------------E7889DDF0F75D34163841C59") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 762 7))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 762 7 "338c847af6d7850d305176d63b34429b" NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ((("text" "html" ("charset" "us-ascii") NIL NIL "7bit" 1134 17) ("image" "png" NIL "<part1.39236103.1B697A54@example.com>" NIL "base64" 1816) ("image" "png" NIL "<part2.39236103.1B697A54@example.com>" NIL "base64" 1992) "related") ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816) "mixed"))

View file

@ -0,0 +1 @@
(BODYSTRUCTURE ((("text" "html" ("charset" "us-ascii") NIL NIL "7bit" 1134 17 "7f3a699dc8fdf9f6e895c474920d7cbd" NIL NIL NIL) ("image" "png" NIL "<part1.39236103.1B697A54@example.com>" NIL "base64" 1816 "a74467a5fe49c14c6bb48ab4ad7a5d2f" ("inline" ("filename" "C:TEMPnsmailV0.png")) NIL NIL) ("image" "png" NIL "<part2.39236103.1B697A54@example.com>" NIL "base64" 1992 "65b8ca765ae9b0d288ffc632d72e14cb" ("inline" ("filename" "C:TEMPnsmailNM.png")) NIL NIL) "related" ("boundary" "------------8E6A06810565BCAB5E1F7D97") NIL NIL NIL) ("image" "png" ("name" "greenball.png") NIL NIL "base64" 1780 "55dd3e55d147bf1a722b462a8e5dbb50" ("inline" ("filename" "greenball.png")) NIL NIL) ("image" "png" ("name" "blueball.png") NIL NIL "base64" 1816 "a74467a5fe49c14c6bb48ab4ad7a5d2f" ("inline" ("filename" "blueball.png")) NIL NIL) "mixed" ("boundary" "------------B7133A01A6B323BF00DBC9A7") NIL NIL NIL))

View file

@ -0,0 +1 @@
(BODY ("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 808 18))

Some files were not shown because too many files have changed in this diff Show more