Use go-message implementation of GenerateMessageID

Now that this is available in the upstream, we no longer need to
maintain a parallel implementation.
This commit is contained in:
Ben Burwell 2019-07-03 10:24:11 -04:00 committed by Drew DeVault
parent cffa2365be
commit 8d9d94f0ee
2 changed files with 1 additions and 36 deletions

View file

@ -1,34 +0,0 @@
package lib
// TODO: Remove this pending merge into github.com/emersion/go-message
import (
"bytes"
"encoding/binary"
"fmt"
"math/rand"
"os"
"time"
"github.com/martinlindhe/base36"
)
// Generates an RFC 2822-complaint Message-Id based on the informational draft
// "Recommendations for generating Message IDs", for lack of a better
// authoritative source.
func GenerateMessageId() string {
var (
now bytes.Buffer
nonce bytes.Buffer
)
binary.Write(&now, binary.BigEndian, time.Now().UnixNano())
binary.Write(&nonce, binary.BigEndian, rand.Uint64())
hostname, err := os.Hostname()
if err != nil {
hostname = "localhost"
}
return fmt.Sprintf("<%s.%s@%s>",
base36.EncodeBytes(now.Bytes()),
base36.EncodeBytes(nonce.Bytes()),
hostname)
}

View file

@ -15,7 +15,6 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
"git.sr.ht/~sircmpwn/aerc/config" "git.sr.ht/~sircmpwn/aerc/config"
"git.sr.ht/~sircmpwn/aerc/lib"
"git.sr.ht/~sircmpwn/aerc/lib/ui" "git.sr.ht/~sircmpwn/aerc/lib/ui"
"git.sr.ht/~sircmpwn/aerc/worker/types" "git.sr.ht/~sircmpwn/aerc/worker/types"
) )
@ -210,7 +209,7 @@ func (c *Composer) PrepareHeader() (*mail.Header, []string, error) {
// Update headers // Update headers
mhdr := (*message.Header)(&header.Header) mhdr := (*message.Header)(&header.Header)
mhdr.SetContentType("text/plain", map[string]string{"charset": "UTF-8"}) mhdr.SetContentType("text/plain", map[string]string{"charset": "UTF-8"})
mhdr.SetText("Message-Id", lib.GenerateMessageId()) mhdr.SetText("Message-Id", mail.GenerateMessageID())
if subject, _ := header.Subject(); subject == "" { if subject, _ := header.Subject(); subject == "" {
header.SetSubject(c.headers.subject.input.String()) header.SetSubject(c.headers.subject.input.String())
} }