| 387 | } |
| 388 | |
| 389 | void MessageHeader::importIMFFields(struct mailimf_fields * fields) |
| 390 | { |
| 391 | struct mailimf_single_fields single_fields; |
| 392 | |
| 393 | mailimf_single_fields_init(&single_fields, fields); |
| 394 | |
| 395 | /* date */ |
| 396 | |
| 397 | if (single_fields.fld_orig_date != NULL) { |
| 398 | time_t timestamp; |
| 399 | timestamp = timestampFromDate(single_fields.fld_orig_date->dt_date_time); |
| 400 | setDate(timestamp); |
| 401 | setReceivedDate(timestamp); |
| 402 | //MCLog("%lu %lu", (unsigned long) timestamp, date()); |
| 403 | } |
| 404 | |
| 405 | /* subject */ |
| 406 | if (single_fields.fld_subject != NULL) { |
| 407 | char * subject; |
| 408 | |
| 409 | subject = single_fields.fld_subject->sbj_value; |
| 410 | setSubject(String::stringByDecodingMIMEHeaderValue(subject)); |
| 411 | } |
| 412 | |
| 413 | /* sender */ |
| 414 | if (single_fields.fld_sender != NULL) { |
| 415 | struct mailimf_mailbox * mb; |
| 416 | Address * address; |
| 417 | |
| 418 | mb = single_fields.fld_sender->snd_mb; |
| 419 | if (mb != NULL) { |
| 420 | address = Address::addressWithIMFMailbox(mb); |
| 421 | setSender(address); |
| 422 | } |
| 423 | } |
| 424 | |
| 425 | /* from */ |
| 426 | if (single_fields.fld_from != NULL) { |
| 427 | struct mailimf_mailbox_list * mb_list; |
| 428 | Array * addresses; |
| 429 | |
| 430 | mb_list = single_fields.fld_from->frm_mb_list; |
| 431 | addresses = lep_address_list_from_lep_mailbox(mb_list); |
| 432 | if (addresses->count() > 0) { |
| 433 | setFrom((Address *) (addresses->objectAtIndex(0))); |
| 434 | } |
| 435 | } |
| 436 | |
| 437 | /* replyto */ |
| 438 | if (single_fields.fld_reply_to != NULL) { |
| 439 | struct mailimf_address_list * addr_list; |
| 440 | Array * addresses; |
| 441 | |
| 442 | addr_list = single_fields.fld_reply_to->rt_addr_list; |
| 443 | addresses = lep_address_list_from_lep_addr(addr_list); |
| 444 | setReplyTo(addresses); |
| 445 | } |
| 446 |
no test coverage detected