From 1d538e85403ac992bf36791782d610281446e016 Mon Sep 17 00:00:00 2001 From: Michal Horejsek Date: Wed, 21 Apr 2021 10:35:05 +0200 Subject: [PATCH] GODT-876 Set default from if empty for importing draft --- internal/transfer/provider_pmapi_target.go | 10 +++++++- .../features/ie/transfer/import_draft.feature | 24 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 test/features/ie/transfer/import_draft.feature diff --git a/internal/transfer/provider_pmapi_target.go b/internal/transfer/provider_pmapi_target.go index 87eb66b8..ae42600a 100644 --- a/internal/transfer/provider_pmapi_target.go +++ b/internal/transfer/provider_pmapi_target.go @@ -118,12 +118,20 @@ func (p *PMAPIProvider) transferDraft(rules transferRules, progress *Progress, m progress.messageImported(msg.ID, importedID, err) } -func (p *PMAPIProvider) importDraft(msg Message, globalMailbox *Mailbox) (string, error) { +func (p *PMAPIProvider) importDraft(msg Message, globalMailbox *Mailbox) (string, error) { //nolint[funlen] message, attachmentReaders, err := p.parseMessage(msg) if err != nil { return "", errors.Wrap(err, "failed to parse message") } + if message.Sender == nil { + mainAddress := p.client().Addresses().Main() + message.Sender = &mail.Address{ + Name: mainAddress.DisplayName, + Address: mainAddress.Email, + } + } + // Trying to encrypt an encrypted draft will return an error; // users are forbidden to import messages encrypted with foreign keys to drafts. if message.IsEncrypted() { diff --git a/test/features/ie/transfer/import_draft.feature b/test/features/ie/transfer/import_draft.feature new file mode 100644 index 00000000..83b11352 --- /dev/null +++ b/test/features/ie/transfer/import_draft.feature @@ -0,0 +1,24 @@ +Feature: Import from EML files + Background: + Given there is connected user "user" + + Scenario: Import draft without from fallbacks to primary address + Given there is EML file "Drafts/one.eml" + """ + Subject: no from yet + To: Internal Bridge + Received: by 2002:0:0:0:0:0:0:0 with SMTP id 0123456789abcdef; Wed, 30 Dec 2020 01:23:45 0000 + + hello + + """ + When user "user" imports local files with rules + | source | target | + | Drafts | Drafts | + Then progress result is "OK" + And transfer exported 1 messages + And transfer imported 1 messages + And transfer failed for 0 messages + And API mailbox "Drafts" for "user" has messages + | from | to | subject | + | [userAddress] | test@protonmail.com | no from yet |