Forum-webmaster
Technique - programmation => Asp / Asp.net / IIS => Message commencé par: bloodycof le le 29-08-2003 a 12:39:36

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

de rien :p


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.