Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Invio e-mail tramite sito web con API

    Provo anche qui..

    Dovrei inviare mail da un sito web.

    Ho creato il form e tutte le funzioni, ma qualcosa non va.
    I controlli funzionano, lo script di invio (senza i controlli) funziona, ma quando unisco il tutto non invia più la mail.. Cosa sbaglio?

    Questo è il form..

    <input type="text" placeholder="Name" class="email-name field"/>
    <input
    type="email" placeholder="Email" class="email-address field"/>
    <textarea
    class="textarea email-message" placeholder="Message"></textarea>
    <div
    class="g-recaptcha" data-sitekey="miocodice"></div>
    <input
    type="submit" class="contact-submit" value="Invia" onclick="sendMail()"/>

    E queste tutte le funzioni utilizzate.

    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 = $('.email-name');
    var
    emailAddress = $('.email-address');
    var
    emailMessage = $('.email-message');
    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: "https://mandrillapp.com/api/1.0/messages/send.json",data: {
    'key': 'MIA_API_KEYS',
    'message': {
    'from_email': emailAddress.val(),
    'from_name': emailName.val(),
    'headers': {
    'Reply-To': emailAddress.val()
    },
    'subject': 'Contatto generato dal...',
    'text': htmlMessage,
    'to': [
    {
    'email': 'emaildestinatario@email.des',
    'name': 'Nome Destinatario',
    'type': 'to'
    }]
    }
    }

    })
    .done(function (msg) {
    var
    msgJson = JSON.parse(msg); console.log(msgJson);
    if
    (msgJson.success == "true") {
    successPopUp();
    }
    else {
    invalidCaptchaPopUp();
    }
    }
    );
    }}
    ;

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    La chiamata Ajax viene eseguita? La console da errori? mandrillapp.com è un sito esterno? Se togli i controlli la chiamata Ajax funziona?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie per la risposta!

    La chiamata non va a buon fine, nel log di mandrill (sì, è un sito esterno) non arriva niente.

    Se invece uso questo codice, senza i controlli, etc..

    jQuery(function($)
    {
    $("#contact-form").submit(function()
    {
    var email = $("#email").val();
    var name = $("#name").val();
    var msg = $("#msg").val();

    $.ajax(
    {
    type: "POST",
    url: "https://mandrillapp.com/api/1.0/messages/send.json",
    data: {
    'key': 'MIA_API_KEY',
    'message': {
    'from_email': email,
    'from_name': name,
    'headers': {
    'Reply-To': email
    },
    'subject': 'Contatto generato dalla Landing Page',
    'text': msg,
    'to': [
    {
    'email': 'emaildestinatario@destinatario.it',
    'name': 'Nome Destinatario',
    'type': 'to'
    }]
    }
    } etc...


    ..la chiamata viene effettuata e la mail inviata!
    Non sono praticissimo del linguaggio, non capisco quale sia la differenza e quindi dov'è il problema!

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ciao Matteo e benvenuto,
    usa il tag code per il codice. Inoltre leggi il regolamento del forum.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ripassa tutti gli step di verifica per capire dove si blocca l'invio
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.