| 785 | } |
| 786 | |
| 787 | void MessageHeader::importIMAPEnvelope(struct mailimap_envelope * env) |
| 788 | { |
| 789 | if (env->env_date != NULL) { |
| 790 | size_t cur_token; |
| 791 | struct mailimf_date_time * date_time; |
| 792 | int r; |
| 793 | |
| 794 | cur_token = 0; |
| 795 | r = mailimf_date_time_parse(env->env_date, strlen(env->env_date), |
| 796 | &cur_token, &date_time); |
| 797 | if (r == MAILIMF_NO_ERROR) { |
| 798 | time_t timestamp; |
| 799 | |
| 800 | // date |
| 801 | timestamp = timestampFromDate(date_time); |
| 802 | setDate(timestamp); |
| 803 | setReceivedDate(timestamp); |
| 804 | mailimf_date_time_free(date_time); |
| 805 | } |
| 806 | else { |
| 807 | struct mailimap_date_time * imap_date; |
| 808 | |
| 809 | r = mailimap_hack_date_time_parse(env->env_date, &imap_date, 0, NULL); |
| 810 | if (r == MAILIMAP_NO_ERROR) { |
| 811 | time_t timestamp; |
| 812 | |
| 813 | timestamp = timestampFromIMAPDate(imap_date); |
| 814 | setDate(timestamp); |
| 815 | setReceivedDate(timestamp); |
| 816 | mailimap_date_time_free(imap_date); |
| 817 | } |
| 818 | } |
| 819 | } |
| 820 | |
| 821 | if (env->env_subject != NULL) { |
| 822 | char * subject; |
| 823 | |
| 824 | // subject |
| 825 | subject = env->env_subject; |
| 826 | setSubject(String::stringByDecodingMIMEHeaderValue(subject)); |
| 827 | } |
| 828 | |
| 829 | if (env->env_sender != NULL) { |
| 830 | if (env->env_sender->snd_list != NULL) { |
| 831 | Array * addresses; |
| 832 | |
| 833 | addresses = imap_mailbox_list_to_address_array(env->env_sender->snd_list); |
| 834 | if (addresses->count() > 0) { |
| 835 | setSender((Address *) addresses->objectAtIndex(0)); |
| 836 | } |
| 837 | } |
| 838 | } |
| 839 | |
| 840 | if (env->env_from != NULL) { |
| 841 | if (env->env_from->frm_list != NULL) { |
| 842 | Array * addresses; |
| 843 | |
| 844 | addresses = imap_mailbox_list_to_address_array(env->env_from->frm_list); |
no test coverage detected