Lines Matching refs:mail
41 struct mail *mail)
43 switch (mailbox_get_last_mail_error(mail->box)) {
60 struct mail *mail)
62 index_sort_program_set_mail_failed(program, mail);
64 if (mailbox_get_last_mail_error(mail->box) == MAIL_ERROR_LIMIT) {
76 struct mail *mail)
82 node->seq = mail->seq;
83 if (mail_get_received_date(mail, &node->date) < 0)
84 node->date = index_sort_program_set_date_failed(program, mail);
89 struct mail *mail)
96 node->seq = mail->seq;
97 if (mail_get_date(mail, &node->date, &tz) < 0)
98 node->date = index_sort_program_set_date_failed(program, mail);
100 if (mail_get_received_date(mail, &node->date) < 0)
101 node->date = index_sort_program_set_date_failed(program, mail);
107 struct mail *mail)
113 node->seq = mail->seq;
114 if (mail_get_virtual_size(mail, &node->size) < 0) {
115 index_sort_program_set_mail_failed(program, mail);
120 static int index_sort_get_pop3_order(struct mail *mail, uoff_t *size_r)
124 if (mail_get_special(mail, MAIL_FETCH_POP3_ORDER, &str) < 0) {
136 struct mail *mail)
142 node->seq = mail->seq;
143 (void)index_sort_get_pop3_order(mail, &node->size);
146 static int index_sort_get_relevancy(struct mail *mail, float *result_r)
150 if (mail_get_special(mail, MAIL_FETCH_SEARCH_RELEVANCY, &str) < 0) {
160 struct mail *mail)
166 node->seq = mail->seq;
167 (void)index_sort_get_relevancy(mail, &node->num);
171 struct mail *mail)
173 enum mail_access_type orig_access_type = mail->access_type;
174 bool prev_slow = mail->mail_stream_opened ||
175 mail->mail_metadata_accessed;
177 i_assert(mail->transaction == program->t);
180 i_assert(mail->lookup_abort == MAIL_LOOKUP_ABORT_NEVER);
183 mail->lookup_abort = MAIL_LOOKUP_ABORT_NOT_IN_CACHE;
185 mail->access_type = MAIL_ACCESS_TYPE_SORT;
187 program->sort_list_add(program, mail);
189 mail->access_type = orig_access_type;
191 if (!prev_slow && (mail->mail_stream_opened ||
192 mail->mail_metadata_accessed)) {
196 mail->lookup_abort = MAIL_LOOKUP_ABORT_NEVER;
414 get_first_addr(struct mail *mail, const char *header,
420 if ((ret = mail_get_first_header(mail, header, &str)) <= 0) {
432 get_first_mailbox(struct mail *mail, const char *header, const char **mailbox_r)
436 if (get_first_addr(mail, header, &addr) < 0) {
445 get_display_name(struct mail *mail, const char *header, const char **name_r)
451 if (get_first_addr(mail, header, &addr) < 0)
477 struct mail *mail, uint32_t seq)
479 if ((mail->mail_stream_opened || mail->mail_metadata_accessed) &&
482 mail_set_seq(mail, seq);
486 mail->lookup_abort = MAIL_LOOKUP_ABORT_NOT_IN_CACHE;
493 struct mail *mail = program->temp_mail;
498 index_sort_set_seq(program, mail, seq);
503 ret = mail_get_first_header(mail, "Subject", &str);
515 ret = get_first_mailbox(mail, "Cc", &str);
518 ret = get_first_mailbox(mail, "From", &str);
521 ret = get_first_mailbox(mail, "To", &str);
524 ret = get_display_name(mail, "From", &str);
527 ret = get_display_name(mail, "To", &str);
533 index_sort_program_set_mail_failed(program, mail);
547 struct mail *mail = program->temp_mail;
568 index_sort_program_set_mail_failed(program, mail);
570 index_sort_program_set_mail_failed(program, mail);
576 index_sort_set_seq(program, mail, seq1);
577 if (mail_get_received_date(mail, &time1) < 0)
578 time1 = index_sort_program_set_date_failed(program, mail);
580 index_sort_set_seq(program, mail, seq2);
581 if (mail_get_received_date(mail, &time2) < 0)
582 time2 = index_sort_program_set_date_failed(program, mail);
588 index_sort_set_seq(program, mail, seq1);
589 if (mail_get_date(mail, &time1, &tz) < 0)
590 time1 = index_sort_program_set_date_failed(program, mail);
592 if (mail_get_received_date(mail, &time1) < 0)
593 time1 = index_sort_program_set_date_failed(program, mail);
596 index_sort_set_seq(program, mail, seq2);
597 if (mail_get_date(mail, &time2, &tz) < 0)
598 time2 = index_sort_program_set_date_failed(program, mail);
600 if (mail_get_received_date(mail, &time2) < 0)
601 time2 = index_sort_program_set_date_failed(program, mail);
608 index_sort_set_seq(program, mail, seq1);
609 if (mail_get_virtual_size(mail, &size1) < 0) {
610 index_sort_program_set_mail_failed(program, mail);
614 index_sort_set_seq(program, mail, seq2);
615 if (mail_get_virtual_size(mail, &size2) < 0) {
616 index_sort_program_set_mail_failed(program, mail);
624 index_sort_set_seq(program, mail, seq1);
625 if (index_sort_get_relevancy(mail, &float1) < 0)
626 index_sort_program_set_mail_failed(program, mail);
627 index_sort_set_seq(program, mail, seq2);
628 if (index_sort_get_relevancy(mail, &float2) < 0)
629 index_sort_program_set_mail_failed(program, mail);
639 index_sort_set_seq(program, mail, seq1);
640 if (index_sort_get_pop3_order(mail, &size1) < 0)
641 index_sort_program_set_mail_failed(program, mail);
642 index_sort_set_seq(program, mail, seq2);
643 if (index_sort_get_pop3_order(mail, &size2) < 0)
644 index_sort_program_set_mail_failed(program, mail);