Titre: RESOLU: Envoyer automatiquement un mail
Posté par: bloodycof le le 29-08-2003 a 12:39:36
Bonjour, J'ai sur mon site un formulaire d'inscription. Une fois les infos entrées je voudrais qu'un mail de confirmation soit envoyé a l'utilisateur. J'ai pris ce code sur le net :
<% ' Exemple d'envoi de formulaire
' Interface pour ASPmail function sendMail(mFrom,mTo,sujet,body) dim Mail ' l'objet SMTP Set Mail = Server.CreateObject("SMTPsvg.Mailer") ' le serveur Mail.RemoteHost = "mail.asp-php.net" ' l'émetteur Mail.FromAddress = mFrom ' le destinataire Mail.Addrecipient mTo,mTo ' l'objet du courriel Mail.Subject = sujet ' le texte du courriel Mail.BodyText = body ' et zou... false si erreur d'émission sendMail = Mail.SendMail end function
%><HTML><HEAD> <TITLE>Exemple</TITLE> </HEAD><BODY><center>
<% ' SI LE FORM A ETE POSTE Email = request.form("Email") if Email <>"" then
' Récupère les éléments du form temp="" for each truc in Request.Form temp = temp & truc & " : " & Request.Form(truc) & VbCrLf & VbCrLf next
' Envoie le message ' L'émetteur est aussi le récepteur dans cet exemple ! if sendmail(Email,Email,"Test SendForm",temp) then ' Affiche un message de confirmation response.write "Le formulaire a bien été envoyé à <b>" & Email & "</b> !" else ' ou un message d'erreur response.write "<font color=red>Impossible d'envoyer le formulaire !</font>" end if
' SINON AFFICHAGE DU FORM else %> <script language="JavaScript"> // Teste si le mail a une forme correcte function checkmail(email) { var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/ return (reg.exec(email)!=null) } // Teste le contenu des champs du form avant submit function test(nom,mail) { if(nom.value=="") { alert("Indiquez votre nom !"); nom.focus(); return false; } else if(!checkmail(mail.value)) { alert("Email incorrect !"); mail.focus(); return false; } return true; } </script> <table><form method="post" onsubmit="return test(this.Nom,this.Email)"> <tr> <td>Nom<br><input name="Nom"></td> <td>Email<br><input name="Email"></td> </tr><tr> <td colspan=2 align=center>Message<br> <textarea wrap=virtual rows=5 cols=35 name="Message"></textarea></td> </tr><tr> <td align=center>Sexe <input type="radio" name="Sexe" value="Homme" checked>M <input type="radio" name="Sexe" value="Femme">F</td> <td align=center>Pays <select name="Pays"> <option>France</option> <option>Belgique</option> <option>Suisse</option> <option>Autre</option> </select></td> </tr><tr> <td colspan=2 align=center> <input type="checkbox" name="Newsletter"> Recevoir la newsletter</td> </tr><tr> <td colspan=2 align=center><br> <input type="hidden" name="IP" value="<%=request.serverVariables("REMOTE_ADDR")%>"> <input type="submit" value="Envoyer le formulaire"></td> </tr> </form></table> <% end if %> </BODY></HTML> mais j'ai l'erreur suivante lorsque je l'implémente :
Objet Server error 'ASP 0177 : 800401f3'
Échec de Server.CreateObject
/confinscrip.asp, line 6
ProgID non valide Pour de plus amples informations relatives à ce message, veuillez visitez le site du Support technique en ligne Microsoft sur : http://www.microsoft.com/contentredirect.asp.
J'ai déjà essayé de plusieurs manieres et j'ai a chaque fois le même message (sauf une fois ou j'ai eu Permission refusée") avec ce code :
Set Mail = Server.CreateObject("Persits.MailSender") Mail.Host = "255.255.255.255" 'met ton adresse IP Mail.From = "ton.adresse@toto.com" Mail.FromName = " " Mail.AddAddress "adresse.destinataire@toto.com" Mail.Subject = " " Mail.Body = msg 'le message On Error Resume Next Mail.Send
If Err <> 0 Then Response.Write "La lattre n'est pas partie du a l'erreur: " & Err.Description End If response.write("Nous vous remercions de nous avoir contacté.")
response.redirect "taPage.asp"
si tu as un probleme et que cela ne fonctionne pas c'est que tu n'as pas le composant je t'en donne un autre
Set MyCDONTSMail = CreateObject("CDONTS.NewMail") MyCDONTSMail.From= "" MyCDONTSMail.To= "" MyCDONTSMail.Subject = "" MyCDONTSMail.Body= msg MyCDONTSMail.Send set MyCDONTSMail=nothing
Merci de votre aide. |
Titre: Re:Envoyer automatiquement un mail
Posté par: Netah le le 29-08-2003 a 14:19:40
Quel est ta config ? Là, il te manque tres certainement le composant. Soit tu dois le trouver et l'installer avec la commande "regsvr32" soit tu utilise cDonts soit tu utilise JMail. Je te conseille JMail. Je te conseille aussi de laisser tomber cet exemple de code, trop complet pour débuter. Trouve JMail sur le net (un moteur de recherche pourrait t'aider :P), il est gratuit. Tu peux utiliser leur install ou juste copier la dll dans le dossier de windows et taper en ligne de commande ou dans démarrer/executer : "regsvr32 c:\windows\jmail.dll" Ensuite, va sur www.ZoneB.org, dans pratique/articles/asp tu as un "simple mailer using JMail". Il me semble que l'article est simple. De toute maniere, si tu affiches le code, tu n'as qu'à remplacer l'ip '183.83.4.2' par celle de ton serveur (ou pc si tu travailles en localhost) et ça devrait fonctionner. Ensuite, si tu veux prendre le temps de le décortiquer, tu pourras le personnaliser.
Tu n'es pas obligé d'utiliser le formulaire. En modifiant le fichier sendmail (remplace les request.form par des request.queryString), tu pourras l'utiliser tout simplement:
Code:
sendmail.asp?recipient=toto@totoland.net&subject=test+mailer+using+jmail&body=ceci+est+un+test+du+mailer+asp+jmail
|
|
Ce qui pourrait te permettre pas mal de libertés.
N'hésite pas à revenir poser tes questions. Bonne lecture et bon courage. |
Titre: Re:Envoyer automatiquement un mail
Posté par: bloodycof le le 29-08-2003 a 15:27:00
Merci bcp ca fonctionne :)
|
Titre: Re:RESOLU: Envoyer automatiquement un mail
Posté par: Netah le le 29-08-2003 a 15:38:24
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|