|
|
|
@@ -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!") |
|
|
|
} |