From 0207fc55ee236d8c57a9896ebd4defc4d55369ce Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 2 Jul 2018 11:33:25 +0200 Subject: Generate globally unique messageids without leaking the hostname --- common/mailpreprocessor.cpp | 11 ++++++----- 1 file 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 @@ #include #include #include +#include #include #include "pipeline.h" @@ -113,13 +114,13 @@ void MailPropertyExtractor::updatedIndexedProperties(Sink::ApplicationDomain::Ma //The rest should never change, unless we didn't have the headers available initially. auto messageId = msg->messageID(true)->identifier(); if (messageId.isEmpty()) { - //reuse an existing messageis (on modification) - auto existing = mail.getMessageId(); + //reuse an existing messageid (on modification) + const auto existing = mail.getMessageId(); if (existing.isEmpty()) { auto tmp = KMime::Message::Ptr::create(); - auto header = tmp->messageID(true); - header->generate("kube.kde.org"); - messageId = header->as7BitString(); + //Genereate a globally unique messageid that doesn't leak the local hostname + messageId = QString{"<" + QUuid::createUuid().toString().mid(1, 36).remove('-') + "@sink>"}.toLatin1(); + tmp->messageID(true)->fromUnicodeString(messageId, "utf-8"); SinkWarning() << "Message id is empty, generating one: " << messageId; } else { messageId = existing; -- cgit v1.2.3