#include #include int main(int argc, char *argv[]) { mailbox_t mbox; int status; size_t total, msgno, new = 0; message_t msg; attribute_t attr; if(argc < 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return EXIT_FAILURE; } mu_register_all_mbox_formats(); if((status = mailbox_create(&mbox, argv[1])) != 0) goto mbox_err; if((status = mailbox_open(mbox, MU_STREAM_READ)) != 0) goto mbox_err; if((status = mailbox_messages_count(mbox, &total)) != 0) goto mbox_err; for(msgno = 1; msgno <= total; msgno++) { if((status = mailbox_get_message(mbox, msgno, &msg)) == 0) { if((status = message_get_attribute(msg, &attr)) == 0) { if(!(attribute_is_deleted(attr) || attribute_is_read(attr))) new++; } else { message_destroy(&msg, NULL); goto mbox_err; } message_destroy(&msg, NULL); } else { goto mbox_err; } } if((status = mailbox_close(mbox)) != 0) goto mbox_err; printf("%u new messages.\n", new); return EXIT_SUCCESS; mbox_err: mu_error("mailbox error: %s", mu_strerror(status)); return EXIT_FAILURE; }