Ok. ora riscrivi error: function() un pò diversamente.
in effetti aggiungi solamente -> jqXHR, textStatus, errorThrown negli argomenti della funzione. (vedi codice) più un paio di alert.
error: function(jqXHR, textStatus, errorThrown) {
// qui mettiamo la gestione dell'errore
alert('status: ' + jqXHR.status);
alert('error thrown: ' + errorThrown);
alert('jqXHR.responseText: ' + jqXHR.responseText);
// qui c'è il codice che c'era prima
// ...
}
ok vediamo l'errore ma sto sospettando che non trovi il file PHP.
il sito poniamo sia
www.sssssssssssssss.i
il file javascript con la chiamata ajax viene incluso in un file html esempio dentro miofile.html
ok, dove si trova miofile.html?
www.ssssssssssssss.it/miofile.htm?
in questo caso NON trova il file PHP perchè nella chiamata fa ../../mail/contact_me.php ovvero torna indietro di due livelli.
dovrebbe essere (SOLO UN ESEMPIO):
www.ssssssssssss.it/mail/directory1/miofile.htm per trovarlo.
in ultima analisi, se l'errore è nel file PHP, dovresti chiamare direttamente il file PHP e vedere cosa ti appare a video, ovvero basta che lo scrivi sulla pagina degli indirizzi del browser, esempio
www.ssssssssssssssssss.it/mail/contact_me.ph dipende dove si trova il file.
però, il file si aspetta argomenti in $_POST.
esistono programmi anche sotto windows che effettuano le chiamate (ad esempio a file PHP) permettendo di specificare gli argomenti in $_POST, nel tuo caso name, email, message e relativi valori. esempio ho trovato un articolo su POSTMAN.
https://www.angeloparziale.it/blog/2017/06/22/postman