mirror of
https://github.com/Luzifer/automail.git
synced 2024-12-20 21:11:20 +00:00
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"encoding/base64"
|
||
|
|
||
|
"github.com/jhillyerd/enmime"
|
||
|
)
|
||
|
|
||
|
type attachmentTransport struct {
|
||
|
FileName string
|
||
|
Content string
|
||
|
ContentType string
|
||
|
}
|
||
|
|
||
|
func attachmentFromMail(msg *enmime.Envelope, filename string) *attachmentTransport {
|
||
|
for _, a := range msg.Attachments {
|
||
|
if a.FileName == filename {
|
||
|
return &attachmentTransport{
|
||
|
Content: base64.StdEncoding.EncodeToString(a.Content),
|
||
|
ContentType: a.ContentType,
|
||
|
FileName: a.FileName,
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
type mailTransport struct {
|
||
|
Attachments []string `json:"attachments"`
|
||
|
Headers map[string]string `json:"headers"`
|
||
|
HTML string `json:"html"`
|
||
|
Text string `json:"text"`
|
||
|
}
|
||
|
|
||
|
func mailToTransport(msg *enmime.Envelope) *mailTransport {
|
||
|
var out = &mailTransport{
|
||
|
Headers: map[string]string{},
|
||
|
HTML: msg.HTML,
|
||
|
Text: msg.Text,
|
||
|
}
|
||
|
|
||
|
for _, a := range msg.Attachments {
|
||
|
out.Attachments = append(out.Attachments, a.FileName)
|
||
|
}
|
||
|
|
||
|
for _, hn := range msg.GetHeaderKeys() {
|
||
|
out.Headers[hn] = msg.GetHeader(hn)
|
||
|
}
|
||
|
|
||
|
return out
|
||
|
}
|