try to work around mailparser not decoding rfc2047 displaynames

this pulls in changes in our fork of rust-email  to also correctly
generate rfc2047 encoding
This commit is contained in:
holger krekel
2019-12-10 00:26:46 +01:00
parent a95fbfe271
commit 054cf98754
4 changed files with 51 additions and 3 deletions

View File

@@ -1583,6 +1583,10 @@ fn dc_add_or_lookup_contacts_by_address_list(
origin: Origin,
to_ids: &mut ContactIds,
) -> Result<()> {
// XXX we use manual decoding
// https://github.com/staktrace/mailparse/issues/50
use email::rfc2047::decode_rfc2047;
let addrs = match mailparse::addrparse(addr_list_raw) {
Ok(addrs) => addrs,
Err(err) => {
@@ -1597,18 +1601,22 @@ fn dc_add_or_lookup_contacts_by_address_list(
for addr in addrs.iter() {
match addr {
mailparse::MailAddr::Single(info) => {
// mailparse does not give us decoded vals
let display_name = decode_rfc2047(&info.display_name.clone().unwrap_or_default());
to_ids.insert(add_or_lookup_contact_by_addr(
context,
&info.display_name,
&display_name,
&info.addr,
origin,
)?);
}
mailparse::MailAddr::Group(infos) => {
for info in &infos.addrs {
let display_name =
decode_rfc2047(&info.display_name.clone().unwrap_or_default());
to_ids.insert(add_or_lookup_contact_by_addr(
context,
&info.display_name,
&display_name,
&info.addr,
origin,
)?);