Credits: andlabs
Note: Currently only a single attachment is supported
package main
import (
"encoding/base64"
"fmt"
"io/ioutil"
"log"
"github.com/arawal/ews"
)
func main() {
fileData, err := ioutil.ReadFile("sample.txt")
fileEncoding := base64.StdEncoding.EncodeToString(fileData)
var amd ews.AttachmentMetadata
amd.Name = "some.txt"
amd.Content = fileEncoding
var email ews.EmailMetadata
email.To = []string{"[email protected]", "[email protected]"}
email.Subject = "sample"
email.Body = "sample email body"
email.Cc = []string{"[email protected]", "[email protected]"}
email.Bcc = []string{"[email protected]", "[email protected]"}
email.ReplyTo = "[email protected]"
var creds ews.Credentials
creds.Server = "https://outlook.office365.com/EWS/exchange.asmx"
creds.Username = "yourusername"
creds.Password = "yourpassword"
resp, err := ews.SendEmailWithAttachment(creds, email, amd)
fmt.Println(resp, err)
return
fileData, err = ioutil.ReadFile("sample.txt")
if err != nil {
log.Fatal(err)
}
fileEncoding = base64.StdEncoding.EncodeToString(fileData)
fmt.Printf("File contents: %s", fileEncoding)
}