Parse Webhook
以下の例は、address@email.sendgrid.biz宛の全てのメールをhttp://sendgrid.biz/uploadにPOSTします。
Parse API settings pageで設定するパラメータは次のようになります。
1
| Hostname: email.sendgrid.biz
|
1
| URL: http://sendgrid.biz/upload
|
このシナリオをテストするために、以下のコードを作成して、example@example.comにメールを送信します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| package main
import (
"fmt"
"net/http"
"io/ioutil"
"log"
"github.com/sendgrid/sendgrid-go"
)
func Parse (w http.ResponseWriter, req *http.Request) {
//Get Email Values
to := req.FormValue("from")
subject := req.FormValue("subject")
body:= req.FormValue("text")
//Get Uploaded File
file, handler, err := req.FormFile("attachment1")
if err != nil {
fmt.Println(err)
}
data, err := ioutil.ReadAll(file)
if err != nil {
fmt.Println(err)
}
err = ioutil.WriteFile(handler.Filename, data, 0777)
if err != nil {
fmt.Println(err)
}
}
func main() {
http.HandleFunc("/upload", Parse)
err := http.ListenAndServe(":3000", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
|