Explorar el Código

enable contact form support.

master
sp hace 4 años
padre
commit
3dc0285dc0
Se han modificado 2 ficheros con 102 adiciones y 0 borrados
  1. +101
    -0
      form_contactus.go
  2. +1
    -0
      http_handler.go

+ 101
- 0
form_contactus.go Ver fichero

@@ -0,0 +1,101 @@
package main

import (
"encoding/json"
"fmt"
log "github.com/sirupsen/logrus"
"net/http"
"net/smtp"
"strings"
)

const formPrefix = "/form/"

type formInput struct {
w http.ResponseWriter
r *http.Request
}

func formMain(w http.ResponseWriter, r *http.Request) {
fi := formInput{w, r}
fi.contactUs()
}

func (m *formInput) contactUs() {
ret := map[string]interface{}{}
ret["success"] = true
m.r.ParseForm()
name := m.r.FormValue("name")
email := m.r.FormValue("email")
message := m.r.FormValue("message")

ret["name"] = name
ret["email"] = email
ret["message"] = message

m.apiV1SendJson(ret)
go sendContactUs(name, email, message)

}

func (m *formInput) apiV1SendJson(result interface{}) {
//general setup
m.w.Header().Set("Content-Type", "application/json;charset=UTF-8")

out, e := json.Marshal(result)
if e != nil {
log.Warn("Cannot convert result to json ", result)
}
m.w.Header().Set("Content-Type", "text/json; charset=utf-8")
//apiV1AddTrackingCookie(w, r, ss) //always the last one to set cookies
fmt.Fprint(m.w, string(out))
}

func sendContactUs(name string, email string, userInput string) {
// Sender data.
from := "mailer@biukop.com.au"
password := "hpfitsrujgkewcdw"

// Receiver email address.
to := []string{
"patrick@biukop.com.au",
}

// smtp server configuration.
smtpHost := "smtp.gmail.com"
smtpPort := "587"

raw := `Subject: {name} Contact form on Biukop Web
Content-Type: text/plain; charset="UTF-8"

Dear Manager,

We receive a a form submission from biukop.com.au
name : {name}
email : {email}
message:

{message}

Kind Regards
Biukop Mailing service team.
`

raw = strings.Replace(raw, "{name}", name, -1)
raw = strings.Replace(raw, "{email}", email, -1)
raw = strings.Replace(raw, "{message}", userInput, -1)

// Message.
message := []byte(raw)

// Authentication.
auth := smtp.PlainAuth("", from, password, smtpHost)

// Sending email.
err := smtp.SendMail(smtpHost+":"+smtpPort, auth, from, to, message)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Email Sent Successfully!")
}

+ 1
- 0
http_handler.go Ver fichero

@@ -14,6 +14,7 @@ var httpEntryMap = map[string]httpEntry{
apiV1Prefix: apiV1Main,
apiV1WebSocket: apiV1WebSocketHandler,
videoPrefix: videoMain,
formPrefix: formMain,
}

func setupHTTPHandler() {

Cargando…
Cancelar
Guardar