summaryrefslogtreecommitdiffstats
path: root/common/mailpreprocessor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/mailpreprocessor.cpp')
-rw-r--r--common/mailpreprocessor.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/common/mailpreprocessor.cpp b/common/mailpreprocessor.cpp
index 3d5dc65..8a00b02 100644
--- a/common/mailpreprocessor.cpp
+++ b/common/mailpreprocessor.cpp
@@ -23,6 +23,7 @@
23#include <QDir> 23#include <QDir>
24#include <QTextDocument> 24#include <QTextDocument>
25#include <QGuiApplication> 25#include <QGuiApplication>
26#include <QUuid>
26#include <KMime/KMime/KMimeMessage> 27#include <KMime/KMime/KMimeMessage>
27 28
28#include "pipeline.h" 29#include "pipeline.h"
@@ -113,13 +114,13 @@ void MailPropertyExtractor::updatedIndexedProperties(Sink::ApplicationDomain::Ma
113 //The rest should never change, unless we didn't have the headers available initially. 114 //The rest should never change, unless we didn't have the headers available initially.
114 auto messageId = msg->messageID(true)->identifier(); 115 auto messageId = msg->messageID(true)->identifier();
115 if (messageId.isEmpty()) { 116 if (messageId.isEmpty()) {
116 //reuse an existing messageis (on modification) 117 //reuse an existing messageid (on modification)
117 auto existing = mail.getMessageId(); 118 const auto existing = mail.getMessageId();
118 if (existing.isEmpty()) { 119 if (existing.isEmpty()) {
119 auto tmp = KMime::Message::Ptr::create(); 120 auto tmp = KMime::Message::Ptr::create();
120 auto header = tmp->messageID(true); 121 //Genereate a globally unique messageid that doesn't leak the local hostname
121 header->generate("kube.kde.org"); 122 messageId = QString{"<" + QUuid::createUuid().toString().mid(1, 36).remove('-') + "@sink>"}.toLatin1();
122 messageId = header->as7BitString(); 123 tmp->messageID(true)->fromUnicodeString(messageId, "utf-8");
123 SinkWarning() << "Message id is empty, generating one: " << messageId; 124 SinkWarning() << "Message id is empty, generating one: " << messageId;
124 } else { 125 } else {
125 messageId = existing; 126 messageId = existing;