Created
July 16, 2017 08:54
-
-
Save gokaybiz/2326d35d23e187d0d5b0466e665c1d3f to your computer and use it in GitHub Desktop.
Contact form with Google Scripts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var secret = '<recaptcha_secret>'; | |
var tomail = '<mail>@gmail.com'; | |
function doGet(e) { | |
return ContentService.createTextOutput('Hayirdir?'); | |
} | |
function doPost(e) { | |
var captchakey = (e.parameters.captcha) || ""; | |
var name = (e.parameters.name) || ""; | |
var email = (e.parameters.email) || ""; | |
var message = (e.parameters.message) || ""; | |
var form_gonder = (e.parameters.formgonder) || ""; | |
var returnval = "ok"; | |
captchakey = captchakey.toString(); | |
name = name.toString(); | |
email = email.toString(); | |
message = message.toString(); | |
form_gonder = form_gonder.toString(); | |
if (form_gonder != "1" || isBlank(captchakey) || isBlank(name) || isBlank(email) || isBlank(message)) | |
returnval = "bos_alan_var"; | |
if (returnval == "ok") | |
if (verifyCaptcha(captchakey)) { | |
MailApp.sendEmail({ | |
to: tomail, | |
subject: "gokay.biz iletisim!", | |
replyTo: getTextFromHtml(email), | |
htmlBody: "<h4 style='text-transform: capitalize; margin-bottom: 0'>İsim: </h4>" + "<div>" + getTextFromHtml(name) + "</div>" + "<h4 style='text-transform: capitalize; margin-bottom: 0'>Mail: </h4>" + "<div>" + getTextFromHtml(email) + "</div>" + "<h4 style='text-transform: capitalize; margin-bottom: 0'>Mesaj: </h4>" + "<div>" + getTextFromHtml(message) + "</div>" | |
}); | |
returnval = "ok||" + name; | |
} else | |
returnval = "captcha"; | |
return ContentService.createTextOutput(returnval); | |
} | |
function isBlank(str) { | |
return (!str || /^\s*$/.test(str)); | |
} | |
function getTextFromHtml(html) { | |
return getTextFromNode(Xml.parse(html, true).getElement()); | |
} | |
function getTextFromNode(x) { | |
switch (x.toString()) { | |
case 'XmlText': | |
return x.toXmlString(); | |
case 'XmlElement': | |
return x.getNodes().map(getTextFromNode).join(''); | |
default: | |
return ''; | |
} | |
} | |
function verifyCaptcha(gRecaptchaResponse) { | |
var payload = { | |
'secret': secret, | |
'response': gRecaptchaResponse | |
} | |
var url = 'https://www.google.com/recaptcha/api/siteverify'; | |
var resp = UrlFetchApp.fetch(url, { | |
payload: payload, | |
method: 'POST' | |
}).getContentText(); | |
return JSON.parse(resp).success; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment