https://github.com/peterhellberg/cloudmailin
Go package used to handle the CloudMailin JSON Hash Email Message Format
https://github.com/peterhellberg/cloudmailin
cloudmailin email go
Last synced: about 1 year ago
JSON representation
Go package used to handle the CloudMailin JSON Hash Email Message Format
- Host: GitHub
- URL: https://github.com/peterhellberg/cloudmailin
- Owner: peterhellberg
- Created: 2015-01-25T22:18:01.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2021-04-26T10:13:34.000Z (almost 5 years ago)
- Last Synced: 2025-01-14T07:11:29.642Z (about 1 year ago)
- Topics: cloudmailin, email, go
- Language: Go
- Size: 18.6 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# cloudmailin
Go package used to handle the CloudMailin [JSON Hash Email Message Format](http://docs.cloudmailin.com/http_post_formats/json/)
[](https://travis-ci.org/peterhellberg/cloudmailin)
[](https://godoc.org/github.com/peterhellberg/cloudmailin)
[](https://github.com/peterhellberg/cloudmailin#license-mit)
## Installation
```bash
go get -u github.com/peterhellberg/cloudmailin
```
## Example
```go
package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"github.com/peterhellberg/cloudmailin"
)
var port = getenv("PORT", "5454")
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method != "POST" {
w.Write([]byte("POST a message here.\n\n" +
"curl -X POST -d @example.json http://0.0.0.0:" + port))
return
}
defer r.Body.Close()
if msg, err := cloudmailin.Decode(r.Body); err == nil {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
json.NewEncoder(w).Encode(&map[string]string{
"to": msg.Headers.To,
"subject": msg.Headers.Subject,
})
}
}
func main() {
http.HandleFunc("/", handler)
fmt.Printf("Listening on http://0.0.0.0:%s\n", port)
http.ListenAndServe(":"+port, nil)
}
func getenv(key, fallback string) string {
if v := os.Getenv(key); v != "" {
return v
}
return fallback
}
```
## License (MIT)
Copyright (c) 2015-2019 [Peter Hellberg](https://c7.se)
> Permission is hereby granted, free of charge, to any person obtaining
> a copy of this software and associated documentation files (the
> "Software"), to deal in the Software without restriction, including
> without limitation the rights to use, copy, modify, merge, publish,
> distribute, sublicense, and/or sell copies of the Software, and to
> permit persons to whom the Software is furnished to do so, subject to
> the following conditions:
> The above copyright notice and this permission notice shall be
> included in all copies or substantial portions of the Software.
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
> LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
> WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.