Envoi automatique de mail avec Ajax au chargement de page

Kelsilver - 26 janv. 2018 à 11:06 - Dernière réponse : jordane45 19955 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 février 2018 Dernière intervention
- 13 févr. 2018 à 23:30
Bonjour,
J'ai cherché sans trouver satisfaction. Voici mon problème: je veux qu'au chargement de ma page, qu'un message soit envoyé à une adresse mail. Voici ce que cela peut ressembler :

<script src="jquery.js"></script>
<form method="GET" action="">
<textarea name="contenu_message" action=""></textarea>
<input type="submit" value="Envoyer" name="bouton" />
</form>
<script>
$("html").load(function(){

$.ajax({
url : '***@***', // L'adresse mail qui reçoit le message
type : 'GET'
data : 'contenu=' + contenu_message; //Contenu du message
});

});
</script>


Merci de m'aider à résoudre ce problème.
Afficher la suite 

5 réponses

Répondre au sujet
jordane45 19955 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 février 2018 Dernière intervention - 26 janv. 2018 à 11:27
0
Utile
Bonjour,

Déjà.. je te conseille d'utiliser le POST au lieu du GET.
Ensuite, il faut récupérer le contenu de tes variables pour les injecter dans ton script...

var contenu_message = $("#contenu_message").val();


Et enfin.. tu ne peux pas utiliser un EMAIL dans l'url de l'ajax.
Il faut que ça soit un script PHP ... qui lui se chargera de l'envoi...

Voici des exemples d'ajax :
http://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery
Commenter la réponse de jordane45
0
Utile
3
Merci Jordane45,
Mais, étant donné que je veux envoyer un message par mail au chargement de ma page, comment faire cela sans cliquer sur un bouton SUBMIT ? L'objectif c'est qu'une fois la page est chargée, un mail est automatiquement envoyé à l'adresse mail indiquée.
Aidez moi
jordane45 19955 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 février 2018 Dernière intervention - 26 janv. 2018 à 18:24
Tu lances ton script js dans un
$(document).ready(...
CecilCordheley 36 Messages postés mercredi 8 novembre 2006Date d'inscription 13 février 2018 Dernière intervention - 13 févr. 2018 à 22:31
La solution de Jordane45 est la bonne, il faut passer par la fonction mailto de PHP (IE utiliser un langage "serveur") pour envoyer un email.

Si tu souhaite envoyer un email au chargement de la page sans appuyer sur le bouton SUBMIT, à quel moment compte tu récupérer le contenu du message ?

Pour faire ce que tu souhaite faire il ne te reste qu'une seule solution :
$.sendMail=function(o){
var _mail= o.mail //< ici l'adresse email
var _url= o.url // < page PHP prévue pour l'envoi du mail
var contenu_message = $("#contenu_message").val(); // mais tu peux mettre var content_message=o.content
$.ajax({
url:_url+"?mail="+_mail,
type:'POST',
data:'content='+contenu_message,
success:function(d){
//ICI LE CODE SI ENVOI
}
});
}

$(function(){
$.sendMail({mail:****@****.fr,url:"sendmail.php",content:$("#contenu_message").val()});
});
jordane45 19955 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 février 2018 Dernière intervention > CecilCordheley 36 Messages postés mercredi 8 novembre 2006Date d'inscription 13 février 2018 Dernière intervention - 13 févr. 2018 à 23:30
Petite précision:
Lorsque l'ont utilise la méthode POST il est préférable de passer les variables en tant qu'objet au lieu de les mettre dans l'url comme tu le fais :
$.ajax({ 
        type: "POST",
        url: _url,
        data: {mail:_mail,content:contenu_message},
        async: true,
        dataType: "json"
})
  .done(function(reponse){
     //ICI LE CODE SI ENVOI

 })
.fail(function(jqXHR, textStatus){
     console.log ('ERREUR : ' + textStatus);
 });


De plus maintenant on utilise plutôt le .done au lieu du .success


Voici ce qui est indiqué dans la documentation officielle :
Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are removed as of jQuery 3.0. You can use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead


Tu trouveras un exemple complet ici : http://codes-sources.commentcamarche.net/source/view/102253/1479662

Et la documentation officielle de l'ajax en jquery :
http://api.jquery.com/jquery.ajax/
.

.
Commenter la réponse de Kelsilver

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.