Upgrade to go-message 0.10

Fixes #54
This commit is contained in:
Simon Ser 2019-05-15 18:51:58 +03:00
parent 20ec639f3e
commit 090d9231c6
No known key found for this signature in database
GPG Key ID: 0FDE7BE0E88F5E48
4 changed files with 24 additions and 22 deletions

9
go.mod
View File

@ -6,13 +6,12 @@ require (
github.com/emersion/go-imap v1.0.0-beta.4
github.com/emersion/go-imap-move v0.0.0-20180601155324-5eb20cb834bf
github.com/emersion/go-imap-specialuse v0.0.0-20161227184202-ba031ced6a62
github.com/emersion/go-message v0.9.2
github.com/emersion/go-message v0.10.2
github.com/emersion/go-smtp v0.11.0
github.com/emersion/go-vcard v0.0.0-20190105225839-8856043f13c5
github.com/emersion/go-webdav v0.0.0-20180509190321-4ef680e9a32f
github.com/howeyc/gopass v0.0.0-20170109162249-bf9dde6d0d2c
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529
golang.org/x/net v0.0.0-20190509222800-a4d6f7feada5 // indirect
golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862 // indirect
golang.org/x/text v0.3.2 // indirect
golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f
golang.org/x/net v0.0.0-20190514140710-3ec191127204 // indirect
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438 // indirect
)

View File

@ -315,9 +315,14 @@ func (mbox *mailbox) SearchMessages(isUID bool, c *imap.SearchCriteria) ([]uint3
h := messageHeader(msg)
for key, wantValues := range c.Header {
values, ok := h[key]
fields := h.FieldsByKey(key)
var values []string
for fields.Next() {
values = append(values, fields.Value())
}
for _, wantValue := range wantValues {
if wantValue == "" && !ok {
if wantValue == "" && len(values) == 0 {
return nil
}
if wantValue != "" {

View File

@ -27,10 +27,9 @@ func messageID(msg *protonmail.Message) string {
func formatHeader(h mail.Header) string {
var b bytes.Buffer
for k, values := range h.Header {
for _, v := range values {
b.WriteString(fmt.Sprintf("%s: %s\r\n", k, v))
}
fields := h.Fields()
for fields.Next() {
b.WriteString(fmt.Sprintf("%s: %s\r\n", fields.Key(), fields.Value()))
}
return b.String()
}
@ -195,7 +194,7 @@ func (mbox *mailbox) attachmentBody(att *protonmail.Attachment) (io.Reader, erro
}
func inlineHeader(msg *protonmail.Message) message.Header {
h := mail.NewTextHeader()
var h mail.InlineHeader
if msg.MIMEType != "" {
h.SetContentType(msg.MIMEType, nil)
} else {
@ -206,7 +205,7 @@ func inlineHeader(msg *protonmail.Message) message.Header {
}
func attachmentHeader(att *protonmail.Attachment) message.Header {
h := mail.NewAttachmentHeader()
var h mail.AttachmentHeader
h.SetContentType(att.MIMEType, nil)
h.Set("Content-Transfer-Encoding", "base64")
h.SetFilename(att.Name)
@ -232,7 +231,7 @@ func mailAddressList(addresses []*protonmail.MessageAddress) []*mail.Address {
}
func messageHeader(msg *protonmail.Message) message.Header {
h := mail.NewHeader()
var h mail.Header
h.SetContentType("multipart/mixed", nil)
h.SetDate(time.Unix(msg.Time, 0))
h.SetSubject(msg.Subject)
@ -464,7 +463,7 @@ func createMessage(c *protonmail.Client, u *protonmail.User, privateKeys openpgp
}
switch h := p.Header.(type) {
case mail.TextHeader:
case *mail.InlineHeader:
t, _, err := h.ContentType()
if err != nil {
break
@ -479,7 +478,7 @@ func createMessage(c *protonmail.Client, u *protonmail.User, privateKeys openpgp
if _, err := io.Copy(body, p.Body); err != nil {
return nil, err
}
case mail.AttachmentHeader:
case *mail.AttachmentHeader:
t, _, err := h.ContentType()
if err != nil {
break

View File

@ -29,10 +29,9 @@ func toPMAddressList(addresses []*mail.Address) []*protonmail.MessageAddress {
func formatHeader(h mail.Header) string {
var b bytes.Buffer
for k, values := range h.Header {
for _, v := range values {
b.WriteString(fmt.Sprintf("%s: %s\r\n", k, v))
}
fields := h.Fields()
for fields.Next() {
b.WriteString(fmt.Sprintf("%s: %s\r\n", fields.Key(), fields.Value()))
}
return b.String()
}
@ -168,7 +167,7 @@ func (s *session) Data(r io.Reader) error {
}
switch h := p.Header.(type) {
case mail.TextHeader:
case *mail.InlineHeader:
t, _, err := h.ContentType()
if err != nil {
break
@ -183,7 +182,7 @@ func (s *session) Data(r io.Reader) error {
if _, err := io.Copy(body, p.Body); err != nil {
return err
}
case mail.AttachmentHeader:
case *mail.AttachmentHeader:
t, _, err := h.ContentType()
if err != nil {
break