Spero di essere nella sezione giusta..
Premetto che non ho grande confidenza con questo linguaggio..
Ho un form per l'invio di mail sul sito di questo tipo:
<form id="contact-form" name="contact-form" method="post" action="invio.asp">
<input type="text" name="emailname" placeholder="Name" class="email-name field"/>
<input type="email" name="emailaddress" placeholder="Email" class="email-address field"/>
<textarea class="textarea email-message" name="emailmessage" placeholder="Message"></textarea>
<div class="g-recaptcha" data-sitekey="miocodice"></div>
<input type="submit" class="contact-submit" value="Invia" onclick="sendMail()"/>
</form>
L'invio porta a invio.asp così scritto:
<%
Dim objMail, objConfig
Set objMail = Server.CreateObject("CDO.Message")
Set objConfig = Server.CreateObject ("CDO.Configuration")
With objConfig
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.aruba.it"
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Fields.Update
End With
Set objMail.Configuration = objConfig
objMail.From = Request.Form("emailaddress")
objMail.To = "MIAMAIL"
objMail.Subject = Request.Form("emailname")
objMail.HTMLBody = Request.Form("emailmessage")
objMail.Send()
Set objMail = Nothing
Response.Write("Email inviata correttamente " &_
"all'indirizzo " &_
Request.Form("email"))
%>
..e funziona perfettamente!
Ma così facendo non posso fare le verifiche sulla mail, la verifica sul g-recaptcha che ho in js ed inoltre alla fine dell'invio mi manda su una nuova pagina con la scritta "Email inviata correttamente" mentre vorrei finire con un pop-up!
La funzioni js (compresa la sendmail che però non funzionava) che avevo erano queste:
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
}
function successPopUp() {
tl.to('.popup-wrapper', .5, {autoAlpha: 1, display: 'block', ease: Linear.easeNone});
$('.popup-title').text("Grazie per averci contattato.");
$('.popup-content').text("Il tuo messaggio è stato inviato correttamente, tutte le informazioni ricevute rimarranno strettamente riservate. Vi contatteremo non appena ricevuto il vostro messaggio.");
}
function invalidPopUp() {
tl.to('.popup-wrapper', .5, {autoAlpha: 1, display: 'block', ease: Linear.easeNone});
$('.popup-title').text("Errore!");
$('.popup-content').text("Compila i campi richiesti.");
}
function invalidEmailPopUp() {
tl.to('.popup-wrapper', .5, {autoAlpha: 1, display: 'block', ease: Linear.easeNone});
$('.popup-title').text("Errore!");
$('.popup-content').text("Inserisci un indirizzo e-mail valido.");
}
function invalidCaptchaPopUp() {
tl.to('.popup-wrapper', .5, {autoAlpha: 1, display: 'block', ease: Linear.easeNone});
$('.popup-title').text("Errore!");
$('.popup-content').text("Effettua il CAPTCHA test.");
}
function sendMail() {
var emailName = $('.emailname');
var emailAddress = $('.emailaddress');
var emailMessage = $('.emailmessage');
var recaptcha = $('#g-recaptcha-response');
var htmlMessage = '<p>name: ' + emailName.val() + '</p>' + '<p>' + emailMessage.val() + '</p>';
if (emailName.val() == "" || emailMessage.val() == "") {
invalidPopUp();
}
else if (!validateEmail(emailAddress.val())) {
invalidEmailPopUp();
}
else if (recaptcha.val() == "") {
invalidCaptchaPopUp();
}
else {
$.ajax({
type: "POST",
url: "mandrill-recaptcha-integration/sendmail.php",
data: {
'from': emailAddress.val(),
'message': htmlMessage,
'g-recaptcha-response': recaptcha.val()
}
}).done(function (msg) {
var msgJson = JSON.parse(msg);
console.log(msgJson);
if (msgJson.success == "true") {
successPopUp();
}
else {
invalidCaptchaPopUp();
}
});
}
}
Come posso "unire" le due cose? Oppure come posso fare funzionare la funzione sendmail, cosa c'è di sbagliato?
Grazie, Matteo.