diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-06-07 08:52:01 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-06-07 08:52:01 +0000 |
commit | bfed07b21a7b4f1b7b5eebd99e469a717a81be26 (patch) | |
tree | 9b30bc8bb89cd22261d6285db70d8669b8a4fc64 /src/send_message.c | |
parent | 7f0a8d80fdb7ad6a254bbfa5eb8af0f21f206067 (diff) |
added an option to apply filter rules to sent messages.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@317 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/send_message.c')
-rw-r--r-- | src/send_message.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/send_message.c b/src/send_message.c index 5458751d..a719a1ee 100644 --- a/src/send_message.c +++ b/src/send_message.c @@ -193,6 +193,37 @@ QueueInfo *send_get_queue_info(const gchar *file) return qinfo; } +gint send_get_queue_contents(QueueInfo *qinfo, const gchar *dest) +{ + FILE *fp; + glong pos; + gchar buf[BUFFSIZE]; + + g_return_val_if_fail(qinfo != NULL, -1); + g_return_val_if_fail(qinfo->fp != NULL, -1); + g_return_val_if_fail(dest != NULL, -1); + + if ((fp = fopen(dest, "wb")) == NULL) { + FILE_OP_ERROR(dest, "fopen"); + return -1; + } + + pos = ftell(qinfo->fp); + + while (fgets(buf, sizeof(buf), qinfo->fp) != NULL) + fputs(buf, fp); + + if (fclose(fp) < 0) { + FILE_OP_ERROR(dest, "fclose"); + unlink(dest); + return -1; + } + + fseek(qinfo->fp, pos, SEEK_SET); + + return 0; +} + void send_queue_info_free(QueueInfo *qinfo) { if (qinfo == NULL) return; @@ -214,6 +245,8 @@ gint send_message_queue(QueueInfo *qinfo) g_return_val_if_fail(qinfo != NULL, -1); + fpos = ftell(qinfo->fp); + if (prefs_common.use_extsend && prefs_common.extsend_cmd) { val = send_message_local(prefs_common.extsend_cmd, qinfo->fp); } else { @@ -235,7 +268,6 @@ gint send_message_queue(QueueInfo *qinfo) } else mailac = qinfo->ac; - fpos = ftell(qinfo->fp); if (qinfo->to_list) { if (mailac) val = send_message_smtp(mailac, qinfo->to_list, @@ -264,6 +296,8 @@ gint send_message_queue(QueueInfo *qinfo) } } + fseek(qinfo->fp, fpos, SEEK_SET); + return val; } |