smtp: add support for In-Reply-To
This commit is contained in:
parent
4de8f28cd6
commit
b8a6d64e5c
|
@ -152,7 +152,7 @@ type MessageFilter struct {
|
|||
Starred *bool
|
||||
Unread *bool
|
||||
Conversation string
|
||||
Address string
|
||||
AddressID string
|
||||
ID []string
|
||||
ExternalID string
|
||||
}
|
||||
|
@ -180,8 +180,8 @@ func (c *Client) ListMessages(filter *MessageFilter) (total int, messages []*Mes
|
|||
if filter.Conversation != "" {
|
||||
v.Set("Conversation", filter.Conversation)
|
||||
}
|
||||
if filter.Address != "" {
|
||||
v.Set("Address", filter.Address)
|
||||
if filter.AddressID != "" {
|
||||
v.Set("AddressID", filter.AddressID)
|
||||
}
|
||||
if filter.ExternalID != "" {
|
||||
v.Set("ExternalID", filter.ExternalID)
|
||||
|
|
22
smtp/smtp.go
22
smtp/smtp.go
|
@ -113,8 +113,26 @@ func (u *user) Send(from string, to []string, r io.Reader) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// TODO: parentID from In-Reply-To
|
||||
msg, err = u.c.CreateDraftMessage(msg, "")
|
||||
parentID := ""
|
||||
inReplyToList, _ := mr.Header.AddressList("In-Reply-To")
|
||||
if len(inReplyToList) == 1 {
|
||||
inReplyTo := inReplyToList[0].Address
|
||||
|
||||
filter := protonmail.MessageFilter{
|
||||
Limit: 1,
|
||||
ExternalID: inReplyTo,
|
||||
AddressID: fromAddr.ID,
|
||||
}
|
||||
total, msgs, err := u.c.ListMessages(&filter)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if total == 1 {
|
||||
parentID = msgs[0].ID
|
||||
}
|
||||
}
|
||||
|
||||
msg, err = u.c.CreateDraftMessage(msg, parentID)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot create draft message: %v", err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue