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

View file

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

View file

@ -308,7 +308,7 @@ impl MailboxView {
))) )))
} }
FetchAttribute::Rfc822Text => { FetchAttribute::Rfc822Text => {
let rp = parsed.get_root_part(); let rp = parsed.root_part();
let r = parsed let r = parsed
.raw_message .raw_message
.get(rp.offset_body..rp.offset_end) .get(rp.offset_body..rp.offset_end)
@ -332,10 +332,10 @@ impl MailboxView {
attributes.push(MessageAttribute::Envelope(message_envelope(&parsed))) attributes.push(MessageAttribute::Envelope(message_envelope(&parsed)))
} }
FetchAttribute::Body => attributes.push(MessageAttribute::Body( 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( 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 { FetchAttribute::BodyExt {
section, 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 return an error if the envelope is invalid instead of panicking
//@FIXME some fields must be defaulted if there are not set. //@FIXME some fields must be defaulted if there are not set.
fn message_envelope(msg: &mail_parser::Message<'_>) -> Envelope { 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 { Envelope {
date: NString( date: NString(
msg.get_date() msg.date()
.map(|d| IString::try_from(d.to_iso8601()).unwrap()), .map(|d| IString::try_from(d.to_rfc3339()).unwrap()),
), ),
subject: NString( subject: NString(
msg.get_subject() msg.subject()
.map(|d| IString::try_from(d.to_string()).unwrap()), .map(|d| IString::try_from(d.to_string()).unwrap()),
), ),
from: from.clone(), from: from.clone(),
sender: convert_addresses(msg.get_sender()).unwrap_or(from.clone()), sender: convert_addresses(msg.sender()).unwrap_or(from.clone()),
reply_to: convert_addresses(msg.get_reply_to()).unwrap_or(from.clone()), reply_to: convert_addresses(msg.reply_to()).unwrap_or(from.clone()),
to: convert_addresses(msg.get_to()).unwrap_or(vec![]), to: convert_addresses(msg.to()).unwrap_or(vec![]),
cc: convert_addresses(msg.get_cc()).unwrap_or(vec![]), cc: convert_addresses(msg.cc()).unwrap_or(vec![]),
bcc: convert_addresses(msg.get_bcc()).unwrap_or(vec![]), bcc: convert_addresses(msg.bcc()).unwrap_or(vec![]),
in_reply_to: NString(None), // @TODO in_reply_to: NString(None), // @TODO
message_id: NString( message_id: NString(
msg.get_message_id() msg.message_id()
.map(|d| IString::try_from(d.to_string()).unwrap()), .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()) Some(l.iter().map(|a| convert_address(a)).collect())
} }
mail_parser::HeaderValue::Empty => None, 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"); tracing::warn!("Invalid address header");
None None
@ -698,10 +692,10 @@ fn build_imap_email_struct<'a>(msg: &Message<'a>, part: &MessagePart<'a>) -> Res
match &part.body { match &part.body {
PartType::Multipart(parts) => { PartType::Multipart(parts) => {
let subtype = IString::try_from( let subtype = IString::try_from(
part.headers_rfc part.headers
.get(&RfcHeader::ContentType) .rfc(&RfcHeader::ContentType)
.ok_or(anyhow!("Content-Type is missing but required here."))? .ok_or(anyhow!("Content-Type is missing but required here."))?
.get_content_type() .content_type()
.c_subtype .c_subtype
.as_ref() .as_ref()
.ok_or(anyhow!("Content-Type invalid, missing subtype"))? .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 // 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. // difference between MIME and raw emails, hence raw emails have no subtypes.
let subtype = part let subtype = part
.get_content_type() .content_type()
.map(|h| h.c_subtype.as_ref()) .map(|h| h.c_subtype.as_ref())
.flatten() .flatten()
.map(|st| IString::try_from(st.to_string()).ok()) .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 (_, basic) = headers_to_basic_fields(&part, bp.len())?;
let ct = part let ct = part
.get_content_type() .content_type()
.ok_or(anyhow!("Content-Type is missing but required here."))?; .ok_or(anyhow!("Content-Type is missing but required here."))?;
let type_ = IString::try_from(ct.c_type.as_ref().to_string()).map_err(|_| { 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, extension: None,
}) })
} }
PartType::Message(bp) => { PartType::Message(inner) => {
// @NOTE in some cases mail-parser does not parse the MessageAttachment but let (_, basic) = headers_to_basic_fields(&part, inner.raw_message().len())?;
// 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())?;
// We do not count the number of lines but the number of line // We do not count the number of lines but the number of line
// feeds to have the same behavior as Dovecot and Cyrus. // feeds to have the same behavior as Dovecot and Cyrus.
// 2 lines = 1 line feed. // 2 lines = 1 line feed.
let nol = inner.raw_message.iter().filter(|&c| c == &b'\n').count(); let nol = inner.raw_message().iter().filter(|&c| c == &b'\n').count();
Ok(BodyStructure::Single { Ok(BodyStructure::Single {
body: FetchBody { body: FetchBody {
basic, basic,
specific: SpecificFields::Message { specific: SpecificFields::Message {
envelope: message_envelope(inner), envelope: message_envelope(inner),
body_structure: Box::new(build_imap_email_struct( body_structure: Box::new(build_imap_email_struct(
&inner, &inner,
inner.get_root_part(), inner.root_part(),
)?), )?),
// @FIXME This solution is bad for 2 reasons: // @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 // - It should be done during parsing, we are iterating twice on
// the same data which results in some wastes. // the same data which results in some wastes.
number_of_lines: u32::try_from(nol)?, number_of_lines: u32::try_from(nol)?,
}, },
}, },
extension: None, 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,
})
}
}
} }
} }
} }
@ -896,7 +849,7 @@ struct SpecialAttrs<'a> {
fn attrs_to_params<'a>(bp: &impl MimeHeaders<'a>) -> (SpecialAttrs, Vec<(IString, IString)>) { fn attrs_to_params<'a>(bp: &impl MimeHeaders<'a>) -> (SpecialAttrs, Vec<(IString, IString)>) {
// Try to extract Content-Type attributes from headers // Try to extract Content-Type attributes from headers
let attrs = match bp let attrs = match bp
.get_content_type() .content_type()
.map(|c| c.attributes.as_ref()) .map(|c| c.attributes.as_ref())
.flatten() .flatten()
{ {
@ -942,13 +895,13 @@ fn headers_to_basic_fields<'a>(
parameter_list, parameter_list,
id: NString( id: NString(
bp.get_content_id() bp.content_id()
.map(|ci| IString::try_from(ci.to_string()).ok()) .map(|ci| IString::try_from(ci.to_string()).ok())
.flatten(), .flatten(),
), ),
description: NString( description: NString(
bp.get_content_description() bp.content_description()
.map(|cd| IString::try_from(cd.to_string()).ok()) .map(|cd| IString::try_from(cd.to_string()).ok())
.flatten(), .flatten(),
), ),
@ -959,7 +912,7 @@ fn headers_to_basic_fields<'a>(
* Content-Transfer-Encoding header field is not present. * Content-Transfer-Encoding header field is not present.
*/ */
content_transfer_encoding: bp content_transfer_encoding: bp
.get_content_transfer_encoding() .content_transfer_encoding()
.map(|h| IString::try_from(h.to_string()).ok()) .map(|h| IString::try_from(h.to_string()).ok())
.flatten() .flatten()
.unwrap_or(unchecked_istring("7bit")), .unwrap_or(unchecked_istring("7bit")),
@ -976,7 +929,7 @@ fn get_message_section<'a>(
) -> Result<Cow<'a, [u8]>> { ) -> Result<Cow<'a, [u8]>> {
match section { match section {
Some(FetchSection::Text(None)) => { Some(FetchSection::Text(None)) => {
let rp = parsed.get_root_part(); let rp = parsed.root_part();
Ok(parsed Ok(parsed
.raw_message .raw_message
.get(rp.offset_body..rp.offset_end) .get(rp.offset_body..rp.offset_end)
@ -987,7 +940,7 @@ fn get_message_section<'a>(
} }
Some(FetchSection::Text(Some(part))) => { Some(FetchSection::Text(Some(part))) => {
map_subpart_msg(parsed, part.0.as_slice(), |part_msg| { 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 Ok(part_msg
.raw_message .raw_message
.get(rp.offset_body..rp.offset_end) .get(rp.offset_body..rp.offset_end)
@ -1002,7 +955,7 @@ fn get_message_section<'a>(
parsed, parsed,
part.as_ref().map(|p| p.0.as_slice()).unwrap_or(&[]), part.as_ref().map(|p| p.0.as_slice()).unwrap_or(&[]),
|part_msg| { |part_msg| {
let rp = part_msg.get_root_part(); let rp = part_msg.root_part();
Ok(part_msg Ok(part_msg
.raw_message .raw_message
.get(..rp.offset_body) .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.as_ref().map(|p| p.0.as_slice()).unwrap_or(&[]),
|part_msg| { |part_msg| {
let mut ret = vec![]; let mut ret = vec![];
for (hn, hv) in part_msg.get_raw_headers() { for (hn, hv) in part_msg.headers_raw() {
if fields if fields
.as_slice() .as_slice()
.iter() .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(b": ");
ret.extend(hv.as_bytes()); ret.extend(hv.as_bytes());
} }
@ -1051,18 +1004,17 @@ fn get_message_section<'a>(
let bytes = match &part.body { let bytes = match &part.body {
PartType::Text(p) | PartType::Html(p) => p.as_bytes().to_vec(), PartType::Text(p) | PartType::Html(p) => p.as_bytes().to_vec(),
PartType::Binary(p) | PartType::InlineBinary(p) => p.to_vec(), PartType::Binary(p) | PartType::InlineBinary(p) => p.to_vec(),
PartType::Message(MessageAttachment::Raw(r)) => r.to_vec(), PartType::Message(p) => p.raw_message.to_vec(),
PartType::Message(MessageAttachment::Parsed(p)) => p.raw_message.to_vec(),
PartType::Multipart(_) => bail!("Multipart part has no body"), PartType::Multipart(_) => bail!("Multipart part has no body"),
}; };
Ok(bytes.into()) Ok(bytes.into())
}), }),
Some(FetchSection::Mime(part)) => map_subpart(parsed, part.0.as_slice(), |msg, part| { Some(FetchSection::Mime(part)) => map_subpart(parsed, part.0.as_slice(), |msg, part| {
let mut ret = vec![]; let mut ret = vec![];
for (name, body) in part.headers_raw.iter() { for head in part.headers.iter() {
ret.extend(name.as_str().as_bytes()); ret.extend(head.name.as_str().as_bytes());
ret.extend(b": "); 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"); ret.extend(b"\r\n");
Ok(ret.into()) Ok(ret.into())
@ -1082,11 +1034,8 @@ where
.parts .parts
.get(path[0].get() as usize - 1) .get(path[0].get() as usize - 1)
.ok_or(anyhow!("No such subpart: {}", path[0]))?; .ok_or(anyhow!("No such subpart: {}", path[0]))?;
if let PartType::Message(msg_attch) = &part.body { if let PartType::Message(msg_attach) = &part.body {
let part_msg = msg_attch map_subpart_msg(&msg_attach, &path[1..], f)
.get_message()
.ok_or(anyhow!("Cannot parse subpart: {}", path[0]))?;
map_subpart_msg(&part_msg, &path[1..], f)
} else { } else {
bail!("Subpart is not a message: {}", path[0]); bail!("Subpart is not a message: {}", path[0]);
} }
@ -1107,11 +1056,8 @@ where
if path.len() == 1 { if path.len() == 1 {
f(msg, part) f(msg, part)
} else { } else {
if let PartType::Message(msg_attch) = &part.body { if let PartType::Message(msg_attach) = &part.body {
let part_msg = msg_attch map_subpart(&msg_attach, &path[1..], f)
.get_message()
.ok_or(anyhow!("Cannot parse subpart: {}", path[0]))?;
map_subpart(&part_msg, &path[1..], f)
} else { } else {
bail!("Subpart is not a message: {}", path[0]); bail!("Subpart is not a message: {}", path[0]);
} }
@ -1135,15 +1081,19 @@ mod tests {
"tests/emails/dxflrs/0001_simple", "tests/emails/dxflrs/0001_simple",
"tests/emails/dxflrs/0002_mime", "tests/emails/dxflrs/0002_mime",
"tests/emails/dxflrs/0003_mime-in-mime", "tests/emails/dxflrs/0003_mime-in-mime",
// broken: numbers of lines/characters not counted correctly
"tests/emails/dxflrs/0004_msg-in-msg", "tests/emails/dxflrs/0004_msg-in-msg",
// wrong. base64?
//"tests/emails/dxflrs/0005_mail-parser-readme", //"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/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/001", // broken
// "tests/emails/rfc/002", // broken: dovecot adds \r when it is missing and count is as // "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. // a character. Difference on how lines are counted too.
@ -1161,7 +1111,7 @@ mod tests {
let message = Message::parse(&txt).unwrap(); let message = Message::parse(&txt).unwrap();
let mut resp = Vec::new(); 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); .encode(&mut resp);
let resp_str = String::from_utf8_lossy(&resp).to_lowercase(); 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_no_parenthesis = &exp[1..exp.len() - 1];
let exp_str = String::from_utf8_lossy(exp_no_parenthesis).to_lowercase(); 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)); //println!("\n\n {} \n\n", String::from_utf8_lossy(&resp));
assert_eq!(resp_str, exp_str); assert_eq!(resp_str, exp_str);
} }

View file

@ -308,7 +308,7 @@ impl MailboxInternal {
}, },
async { async {
// Save mail meta // Save mail meta
let mail_root = mail.parsed.get_root_part(); let mail_root = mail.parsed.root_part();
let meta = MailMeta { let meta = MailMeta {
internaldate: now_msec(), internaldate: now_msec(),
headers: mail.raw[..mail_root.offset_body].to_vec(), headers: mail.raw[..mail_root.offset_body].to_vec(),
@ -359,7 +359,7 @@ impl MailboxInternal {
}, },
async { async {
// Save mail meta // Save mail meta
let mail_root = mail.parsed.get_root_part(); let mail_root = mail.parsed.root_part();
let meta = MailMeta { let meta = MailMeta {
internaldate: now_msec(), internaldate: now_msec(),
headers: mail.raw[..mail_root.offset_body].to_vec(), 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` - listen on :994, run `openssl s_client -connect 127.0.0.1:994`
- login with `A LOGIN test@example.com pass` - login with `A LOGIN test@example.com pass`
- Cyrus - 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` - 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: Other IMAP servers we could add:
- WildDuck (own node.js imap implementation) - 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