fix(GODT-2598): Map Message Size Error to Gluon Error

Prevents messages with invalid size from ending up in the recovery
mailbox.
This commit is contained in:
Leander Beernaert
2023-04-28 11:26:53 +02:00
parent 38b13d710c
commit 910060a14c
3 changed files with 11 additions and 6 deletions

View File

@ -20,6 +20,7 @@ package user
import (
"bytes"
"context"
"errors"
"fmt"
"net/mail"
"sync/atomic"
@ -350,7 +351,13 @@ func (conn *imapConnector) CreateMessage(
wantFlags = wantFlags.Add(proton.MessageFlagReplied)
}
return conn.importMessage(ctx, literal, wantLabelIDs, wantFlags, unread)
msg, literal, err := conn.importMessage(ctx, literal, wantLabelIDs, wantFlags, unread)
if err != nil && errors.Is(err, proton.ErrImportSizeExceeded) {
// Remap error so that Gluon does not put this message in the recovery mailbox.
err = fmt.Errorf("%v: %w", err, connector.ErrMessageSizeExceedsLimits)
}
return msg, literal, err
}
func (conn *imapConnector) GetMessageLiteral(ctx context.Context, id imap.MessageID) ([]byte, error) {