you could use mailgun. I just wrote this tiny app that will send the contents of a file. package main import ( "context" "fmt" "" "io/ioutil" "os" "time" ) func main() { mg := mailgun.NewMailgun(os.Getenv("DOMAIN"), os.Getenv("API_KEY")) to := os.Getenv("SEND_ADDRESS") data, err := ioutil.ReadFile(os.Args[1]) if err != nil { fmt.Println(err) } m := mg.NewMessage( "[email protected]", "Test Log", string(data), to) ctx, cancel := context.WithTimeout(context.Background(), time.Second*10) defer cancel() _, id, err := mg.Send(ctx, m) if err != nil { fmt.Println(err) } fmt.Println(id) } I lazily take the first argument as the file with the contents you want to send. Just have env vars for the recipient address, your api key and domain (or hard code them). You could take flags and whatever, but this was free and I'm lazy.