IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Envoie de mail automatique depuis une page ASP


Sujet :

ASP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Points : 23
    Points
    23
    Par défaut Envoie de mail automatique depuis une page ASP
    Bonjour

    J'ai conçu un site web en ASP à l'aide de Dreamweaver mx et j'ai ajouté le code suivant afin d'envoyer un mail automatique à la fermeture de la page.
    <% Set Mail = Server.CreateObject("Persits.MailSender")

    Mail.Host = "mail.lycee.eu"
    Mail.From = "secretariat@lycee.eu"
    Mail.FromName = "Site Web Lycée"
    Mail.AddAddress "nr@orange.fr"
    Mail.AddReplyTo (Recordset3.Fields.Item("Mail").Value)
    Mail.Subject = "Comptes rendus de réunions"
    Mail.Body = "Bonjour ; Un compte rendu de reunion vient d'être saisis sur le site du lycée. Vous pouvez le consulter sur http://www.lycee-.eu/Compte_rendu4.asp. Ce message est généré automatiquement par le serveur de messagerie. Veuillez ne pas répondre. Si vous désirez ne plus recevoir de courriel pour ce type d'information, veuillez le signaler à l'adresse secretariat@lycee.eu"

    On Error Resume Next
    Mail.Send
    If Err <> 0 Then
    Response.Write "Erreur : " & Err.Description
    End If
    %>
    Cela fonctionne très bien pour des adresses mail saisies dans le code ex:
    Mail.AddAddress "nr@orange.fr"
    mais lorsque je veux faire appel à une liste d'adresse contenues dans ma base Access, seule le premier enregistrement est pris en compte. La ligne que j'ai tapée ne fonctionne donc pas correctement.
    Mail.AddReplyTo (Recordset3.Fields.Item("Mail").Value)
    Quelqu'un peut-il m'aider
    je vous remercie d'avance.

    jean louis

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    C'est normal que tu ne lises que le premier enregistrement, il faut lire le RecordSet ligne par ligne:

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do while not Recordset3.eof  ' Tant qu'on est pas à la fin du RecordSet
    Mail.AddReplyTo (Recordset3.Fields.Item("Mail").Value) 
    Recordset3.movenext 'Aller à l'enregistrement suivant
    Loop

    Je pense que cette simple boucle devrait suffir.

    Tiens moi au courant

  3. #3
    Poumtschak
    Invité(e)
    Par défaut
    Attention aux informations que tu laisses dans le code en postant ici, notamment les URL et adresses mél.

    Il ne m'a été très compliqué de trouver de quel Lycée "protocolaire" il s'agit à Poitiers...

    Précautions de niveau B2I quoi.

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2008
    Messages : 230
    Points : 96
    Points
    96
    Par défaut
    Bonjour;
    A ta place je fais une boucle sur toutes les adresses emails et comme ca chaque destinataire voit que l'email est pour lui
    Je t'envoie mon code à toi de jouer sur les noms de serveurs et les adresses emails :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    sql="select * from table_email"
    set rec=conn.Execute(sql)
    BodyText="<html>" & _
                  "<body>" & _
                  "<p align='center'>" & _
    	      "<br>Si ce message ne s'affiche pas correctement cliquer <a target='_blank' href='http://www.xxxx.com'>ici </a>"  & _
    	      "<br>" & _
    	      "</p></body></html>"
    Subject="Objet du mail"
    FromName="xxxx"
    FromAddress="xxx@xxx.com"
    CCName=""
    CCAddress=""
    While not rec.EOF 
    		RecipientName=trim(rec("Email"))
                    RecipientEmail=trim(rec("Email"))
    		res=SendMail(FromName, FromAddress, RecipientName, RecipientEmail, Subject, BodyText, CCName, CCAddress)
    		if (res) then %>
    <span> Envoie ok</span>
                    <% else %>
    <span> Envoie ko</span>
                    <% end if 
    		rec.MoveNext
    		wend
    La fonction sendmail est ma fonction pour l'envoie et dans laquelle je définis mes paramètres d'envoi : le nom de serveur smtp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <%
    Function SendMail(FromName, FromAddress, RecipientName, RecipientEmail, Subject, BodyText, CCName, CCAddress)
    	BodyText="<html><head><meta http-equiv=""content-type"" content=""text/html; charset=iso-8859-1""></head>"&BodyText&"</html>"
    	if FromName="" then FromName="XXXXX"
    	if FromAddress="" then FromAddress="xxxx@xxx.com"
    	set MailerObject=Server.CreateObject("Persits.MailSender")
    	MailerObject.IsHTML = True
    	MailerObject.CharSet = "iso-8859-1"
    	MailerObject.ContentTransferEncoding = "Quoted-Printable"
    	MailerObject.FromName=FromName&" <"&FromAddress&">"
    	MailerObject.From=FromAddress 	
    	MailerObject.AddReplyTo FromAddress
    	MailerObject.Host="smtp.xxx.com"
    	if RecipientEmail<>Replace(RecipientEmail,";"," ") then
    		RecipientEmailArray=Split(RecipientEmail,";")
    		for each RecipientEmailElement in RecipientEmailArray
    			if RecipientEmailElement<>"" then
    				MailerObject.AddAddress RecipientEmailElement, RecipientEmailElement
    			end if
    		next
    	else
    		MailerObject.AddAddress RecipientEmail, RecipientEmail 'RecipientName !!!
    	end if
    	if CCAddress<>"" then
    		if CCAddress<>Replace(CCAddress,";"," ") then
    			CCAddressArray=Split(CCAddress,";")
    			for each CCAddressElement in CCAddressArray
    				if CCAddressElement<>"" then
    					MailerObject.AddBcc CCAddressElement, CCAddressElement
    				end if
    			next
    		else
    			MailerObject.AddBcc CCAddress, CCAddress 'CCName !!!
    		end if
    	end if
    	MailerObject.Subject=Subject
    	MailerObject.Body=BodyText
    	MailerObject.UserName = "xxxx"
    	MailerObject.Password = "xxxxx"
     
    	if MailerObject.Send then
    		SendMail=true
    	else
    		SendMail=false
    	end if
    	set MailerObject=nothing
    End Function
    %>
    C'est tout
    Bien sur tu dois doit utiliser l'objet mail implémenté par votre hébergeur, pour moi c'est Persits.MailSender
    Bon travail

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Poster un Email depuis une page ASP.net 2.0
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 4
    Dernier message: 30/04/2008, 11h18
  2. Réponses: 2
    Dernier message: 25/02/2008, 13h28
  3. Réponses: 8
    Dernier message: 14/06/2007, 09h16
  4. Récupérer une date depuis une page ASP dans une BDD
    Par franckrichard57 dans le forum ASP
    Réponses: 2
    Dernier message: 22/03/2007, 11h31
  5. Réponses: 4
    Dernier message: 08/02/2007, 00h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo