doveadm-mail-fetch.c revision 89d31290dab6e4bde08b8a118121f008154772e9
76b43e4417bab52e913da39b5f5bc2a130d3f149Timo Sirainen/* Copyright (c) 2010-2016 Dovecot authors, see the included COPYING file */
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_user(struct fetch_cmd_context *ctx)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen doveadm_print(ctx->ctx.cur_mail_user->username);
12cf3d0e03fc70fb0c8b91bc8fd83b4e14d7cdefTimo Sirainenstatic int fetch_mailbox(struct fetch_cmd_context *ctx)
087939d3fa9c4056419386c9d6c81f147de534cdTimo Sirainen if (mail_get_special(ctx->mail, MAIL_FETCH_MAILBOX_NAME, &value) < 0)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_mailbox_guid(struct fetch_cmd_context *ctx)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen if (mailbox_get_metadata(ctx->mail->box, MAILBOX_METADATA_GUID,
45155bb1250cf5a120278f349465aded513a100fTimo Sirainen doveadm_print(guid_128_to_string(metadata.guid));
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_seq(struct fetch_cmd_context *ctx)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_uid(struct fetch_cmd_context *ctx)
4ead43ecc06d10047998966c4dc0b142ecce4b66Timo Sirainenstatic int fetch_guid(struct fetch_cmd_context *ctx)
bb8d0ec26bdd548624d7a7424071cca693b72f55Timo Sirainen if (mail_get_special(ctx->mail, MAIL_FETCH_GUID, &value) < 0)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_flags(struct fetch_cmd_context *ctx)
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen imap_write_flags(str, mail_get_flags(ctx->mail),
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_modseq(struct fetch_cmd_context *ctx)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen doveadm_print_num(mail_get_modseq(ctx->mail));
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_hdr(struct fetch_cmd_context *ctx)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen if (mail_get_hdr_stream(ctx->mail, &hdr_size, &input) < 0)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen input = i_stream_create_limit(input, hdr_size.physical_size);
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainenstatic int fetch_hdr_field(struct fetch_cmd_context *ctx)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen const char *const *value, *filter, *name = ctx->cur_field->name;
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen if (filter != NULL && strcmp(filter, "utf8") == 0) {
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen if (mail_get_headers_utf8(ctx->mail, name, &value) < 0)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen if (mail_get_headers(ctx->mail, name, &value) < 0)
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen if (filter == NULL || strcmp(filter, "utf8") == 0) {
9439bed2f07d6475febd8a247cd2f0990fb32a13Timo Sirainen /* print the header as-is */
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen addr = message_address_parse(pool_datastack_create(),
38318f5e82662615cd88e99e398efe4a630ce020Timo Sirainenstatic int fetch_body(struct fetch_cmd_context *ctx)
38318f5e82662615cd88e99e398efe4a630ce020Timo Sirainen if (mail_get_stream(ctx->mail, &hdr_size, NULL, &input) < 0)
38318f5e82662615cd88e99e398efe4a630ce020Timo Sirainenstatic int fetch_body_snippet(struct fetch_cmd_context *ctx)
int ret = 0;
&block))
time_t t;
time_t t;
int tz;
char chr;
time_t t;
time_t t;
time_t t;
int tz;
time_t t;
const char *value;
const char *value;
const char *value;
const char *value;
const char *value;
const char *value;
const char *value;
return &fetch_fields[i];
return NULL;
static void print_fetch_fields(void)
int ret = 0;
return ret;
int ret = 0;
&iter) < 0)
T_BEGIN {
} T_END;
return ret;
int ret = 0;
} T_END;
return ret;
const char *const args[])
DOVEADM_CMD_PARAM('\0', "fieldstr", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL | CMD_PARAM_FLAG_DO_NOT_EXPOSE) /* FIXME: horrible hack, remove me when possible */