GList *cur;
for (cur = folder_get_list(); cur != NULL; cur = cur->next) {
- trash = FOLDER(cur->data)->trash;
+ Folder *folder = FOLDER(cur->data);
+ trash = folder->trash;
procmsg_empty_trash(trash);
+ if (folder->account && folder->account->set_trash_folder &&
+ folder_find_item_from_identifier(folder->account->trash_folder))
+ procmsg_empty_trash(
+ folder_find_item_from_identifier(folder->account->trash_folder));
}
}
if((filtering_rules != NULL) &&
filter_message_by_msginfo(filtering_rules, msginfo))
return TRUE;
+
+ hooks_invoke(MAIL_POSTFILTERING_HOOKLIST, msginfo);
return FALSE;
}
mimeinfo->content = MIMECONTENT_FILE;
mimeinfo->data.filename = g_strdup(tmpfile);
g_free(tmpfile);
- }
-
- tmp_msginfo = procheader_parse_file(mimeinfo->data.filename,
- flags, TRUE, FALSE);
-
- if (tmp_msginfo != NULL) {
- tmp_msginfo->folder = src_msginfo->folder;
- tmp_msginfo->plaintext_file = g_strdup(mimeinfo->data.filename);
+ tmp_msginfo = procheader_parse_file(mimeinfo->data.filename,
+ flags, TRUE, FALSE);
+ if (tmp_msginfo != NULL) {
+ tmp_msginfo->folder = src_msginfo->folder;
+ tmp_msginfo->plaintext_file = g_strdup(mimeinfo->data.filename);
+ } else {
+ g_warning("procmsg_msginfo_new_from_mimeinfo(): Can't generate new msginfo");
+ }
} else {
- g_warning("procmsg_msginfo_new_from_mimeinfo(): Can't generate new msginfo");
+ gchar *tmpfile = get_tmp_file();
+ FILE *fp = fopen(tmpfile, "wb");
+ if (fp && procmime_write_message_rfc822(mimeinfo, fp) >= 0) {
+ tmp_msginfo = procheader_parse_file(
+ tmpfile, flags, TRUE, FALSE);
+ }
+ if (fp)
+ fclose(fp);
+ if (tmp_msginfo != NULL) {
+ tmp_msginfo->folder = src_msginfo->folder;
+ tmp_msginfo->plaintext_file = g_strdup(tmpfile);
+ } else {
+ g_warning("procmsg_msginfo_new_from_mimeinfo(): Can't generate new msginfo");
+ }
+ g_free(tmpfile);
+
}
return tmp_msginfo;