aboutsummaryrefslogtreecommitdiff
path: root/src/send_message.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-06-07 08:52:01 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-06-07 08:52:01 +0000
commitbfed07b21a7b4f1b7b5eebd99e469a717a81be26 (patch)
tree9b30bc8bb89cd22261d6285db70d8669b8a4fc64 /src/send_message.c
parent7f0a8d80fdb7ad6a254bbfa5eb8af0f21f206067 (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.c36
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;
}