From 25671ba94f7ddca7c647af8f94e538736e31949b Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Thu, 13 Mar 2025 17:34:10 +1300 Subject: [PATCH] Chore: Use `Message-ID` header instead of `Message-Id` when generating new IDs (RFC 5322) --- cmd/root.go | 2 +- internal/smtpd/main.go | 4 ++-- server/apiv1/release.go | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index ec59639..9958478 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -90,7 +90,7 @@ func init() { rootCmd.Flags().IntVarP(&config.MaxMessages, "max", "m", config.MaxMessages, "Max number of messages to store") rootCmd.Flags().StringVar(&config.MaxAge, "max-age", config.MaxAge, "Max age of messages in either (h)ours or (d)ays (eg: 3d)") rootCmd.Flags().BoolVar(&config.UseMessageDates, "use-message-dates", config.UseMessageDates, "Use message dates as the received dates") - rootCmd.Flags().BoolVar(&config.IgnoreDuplicateIDs, "ignore-duplicate-ids", config.IgnoreDuplicateIDs, "Ignore duplicate messages (by Message-Id)") + rootCmd.Flags().BoolVar(&config.IgnoreDuplicateIDs, "ignore-duplicate-ids", config.IgnoreDuplicateIDs, "Ignore duplicate messages (by Message-ID)") rootCmd.Flags().StringVar(&logger.LogFile, "log-file", logger.LogFile, "Log output to file instead of stdout") rootCmd.Flags().BoolVarP(&logger.QuietLogging, "quiet", "q", logger.QuietLogging, "Quiet logging (errors only)") rootCmd.Flags().BoolVarP(&logger.VerboseLogging, "verbose", "v", logger.VerboseLogging, "Verbose logging") diff --git a/internal/smtpd/main.go b/internal/smtpd/main.go index 37f7a68..ffd0679 100644 --- a/internal/smtpd/main.go +++ b/internal/smtpd/main.go @@ -56,14 +56,14 @@ func SaveToDatabase(origin net.Addr, from string, to []string, data []byte) (str } } - messageID := strings.Trim(msg.Header.Get("Message-Id"), "<>") + messageID := strings.Trim(msg.Header.Get("Message-ID"), "<>") // add a message ID if not set if messageID == "" { // generate unique ID messageID = shortuuid.New() + "@mailpit" // add unique ID - data = append([]byte("Message-Id: <"+messageID+">\r\n"), data...) + data = append([]byte("Message-ID: <"+messageID+">\r\n"), data...) } else if config.IgnoreDuplicateIDs { if storage.MessageIDExists(messageID) { logger.Log().Debugf("[smtpd] duplicate message found, ignoring %s", messageID) diff --git a/server/apiv1/release.go b/server/apiv1/release.go index b394e79..9e0a3f6 100644 --- a/server/apiv1/release.go +++ b/server/apiv1/release.go @@ -178,8 +178,8 @@ func ReleaseMessage(w http.ResponseWriter, r *http.Request) { // generate unique ID uid := shortuuid.New() + "@mailpit" - // update Message-Id with unique ID - msg, err = tools.SetMessageHeader(msg, "Message-Id", "<"+uid+">") + // update Message-ID with unique ID + msg, err = tools.SetMessageHeader(msg, "Message-ID", "<"+uid+">") if err != nil { httpError(w, err.Error()) return