aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmime')
-rw-r--r--src/libmime/message.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c
index 18ddfbc34..fe97183e4 100644
--- a/src/libmime/message.c
+++ b/src/libmime/message.c
@@ -1542,6 +1542,7 @@ rspamd_message_parse (struct rspamd_task *task)
GList *first, *cur;
GMimeObject *parent;
const GMimeContentType *ct;
+ struct raw_header *rh;
struct mime_text_part *p1, *p2;
struct mime_foreach_data md;
struct received_header *recv;
@@ -1703,18 +1704,22 @@ rspamd_message_parse (struct rspamd_task *task)
task->rcpt_mime);
#endif
}
- task->from_mime = internet_address_list_parse_string(
- g_mime_message_get_sender (task->message));
- if (task->from_mime) {
+ first = rspamd_message_get_header (task, "From", FALSE);
+
+ if (first) {
+ rh = first->data;
+ task->from_mime = internet_address_list_parse_string (rh->value);
+ if (task->from_mime) {
#ifdef GMIME24
- rspamd_mempool_add_destructor (task->task_pool,
- (rspamd_mempool_destruct_t) g_object_unref,
- task->from_mime);
+ rspamd_mempool_add_destructor (task->task_pool,
+ (rspamd_mempool_destruct_t) g_object_unref,
+ task->from_mime);
#else
- rspamd_mempool_add_destructor (task->task_pool,
- (rspamd_mempool_destruct_t) internet_address_list_destroy,
- task->from_mime);
+ rspamd_mempool_add_destructor (task->task_pool,
+ (rspamd_mempool_destruct_t) internet_address_list_destroy,
+ task->from_mime);
#endif
+ }
}
/* Parse urls inside Subject header */