[pmg-devel] [RFC pmg-api] trim Message-ID when parsing E-mail
Hannes Duerr
h.duerr at proxmox.com
Mon Apr 14 17:36:56 CEST 2025
when we currently parse emails we do not remove trailing newlines from
the message-id. The consequence of this is that if you use the rule
system macro __MSGID__, there is also a newline at the end of the
string. This in turn leads to problems if you create a rule and want to
add something after the message ID.
Signed-off-by: Hannes Duerr <h.duerr at proxmox.com>
---
Notes:
I'm not 100% sure whether we can simply trim the newline without any
problems. I have searched through the code a bit, but I have not come
across any problematic areas. We use the msgid for the log messages, but
it is in the last position there and a newline is set. This means that
the log message does not change
If anyone has any objections or other ideas on how to tackle the
problem, I'd be interested to hear them
src/PMG/MailQueue.pm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/PMG/MailQueue.pm b/src/PMG/MailQueue.pm
index 4e37cb9..2af95bd 100644
--- a/src/PMG/MailQueue.pm
+++ b/src/PMG/MailQueue.pm
@@ -4,6 +4,7 @@ use strict;
use warnings;
use PVE::SafeSyslog;
+use PVE::Tools qw (trim);
use MIME::Parser;
use IO::File;
use Encode;
@@ -394,7 +395,7 @@ sub parse_mail {
PMG::MIMEUtils::fixup_multipart($entity);
if ((my $idcount = $entity->head->count ('Message-Id')) > 0) {
- $self->msgid ($entity->head->get ('Message-Id', $idcount - 1));
+ $self->msgid (trim($entity->head->get ('Message-Id', $idcount - 1)));
}
# fixme: add parse_time to statistic database
--
2.39.5
More information about the pmg-devel
mailing list