Envoi d'un mail en asp.net 2.0 en html

Résolu
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006
- 10 févr. 2006 à 15:26
jubourbon
Messages postés
40
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
3 juillet 2009
- 11 mars 2009 à 11:01
Je désire à patire d'une page aspx envoyer un mail en html.
Jusque là pas de probléme cela fonction trés bien.

Voici mon code

<script
runat="server"
language="vbscript"
lang="fr">



Sub Page_Load(
ByVal Sender
As Object,
ByVal e
As EventArgs)



Dim email
As
New System.Net.Mail.MailMessage()



Dim Client
As
New Net.Mail.SmtpClient


email.From =
New Net.Mail.MailAddress(
"pierre@monsitecom")


email.To.Add(
New Net.Mail.MailAddress(
"marco@monsite.com"))


email.To.Add(
New Net.Mail.MailAddress(
"paul@monsite.com"))


email.CC.Add(
New Net.Mail.MailAddress(
"jean@monsite.com"))


email.Subject =
"Mail de test"


email.IsBodyHtml =
True


email.Body =
"Nom code HTML"


Client.Host =
"smtp.monsite.com"


Client.Credentials =
New Net.NetworkCredential(
"login",
"pass")


Client.Send(email)



End
Sub


</script>

Je voudrai plustôt que d'écrire directement dans le script le html que le script aille le lire sur dans fichier texte.
Merci d'avance de vos réponse
Marco Madagascar

14 réponses

cs_azra
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
13 juillet 2007
1
24 févr. 2006 à 11:51
Bonjour,

1°) Si une adresse n est pas valable, le serveur SMTP va te renvoyer une exception, un try catch fera donc l affaire.
2°) Si tu veux envoyer le même mail a plusieurs personnes, il te faut faire des mailmessagez.recipients.add() ou un truc dans le genre (pas de VS 2005 sous la main, désolé). Par contre les Emails envoyés un par un, c'est le serveur SMTP qui gére l'envoie d'Email, toi tu ne fais que transmettre tes instructions.


<HR>
Azra (Florent) - MVS - MCAD.NET
3
jesusonline
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
10 févr. 2006 à 17:02
Bonjour,

regarde ici : http://www.vbfrance.com/code.aspx?id=27240 tu trouveras comment récuperer le contenu d'un fichier sous forme d'un string


<HR>
Cyril - MVS - MCP ASP
0
cs_azra
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
13 juillet 2007
1
10 févr. 2006 à 22:11
Perso, j'utilise les fichiers de ressources pour ce genre de données (click droit, add ressource file). Mais dans un fichier txt c'est très bien aussi hein, c'est juste que les ressources ca completionne bien dans l'IDE


<HR>
Azra (Florent) - MVS - MCAD.NET
0
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

13 févr. 2006 à 15:24
Merci de ta réponse.


Voici mon code il tourne bien.
Maintenant j'ai une autre question: je voudrais envoye le mail à tous les personnes qui sont inscrit sur mon site.
---------------------------------
888888888888888888888
---------------------------------
LE CODE D'ENVOIE

Dim email
As
New System.Net.Mail.MailMessage()



Dim Client
As
New Net.Mail.SmtpClient



'Lecture du fichier texte et mise dans un string



Dim file
As
New System.IO.StreamReader(
"c:\TextFile.txt")



Dim words
As
String = file.ReadToEnd()



Try



Catch ex
As Exception



' Gestion d'une erreure


MsgBox(
"ERREUR d'ouverture du fichier " & Chr(10) & Chr(13) & ex.Message)



Exit
Try



Finally



If
Not file
Is
Nothing
Then file.Close()



End
Try



'Fermeture du fichier texte


file.Close()



'Mail de


email.From =
New Net.Mail.MailAddress(
"webmaster@monsite.com")



'Mail to


email.To.Add(
New Net.Mail.MailAddress(
"marco@monsite.com"))



'Mail copie conforme



'email.CC.Add(New Net.Mail.MailAddress("webmaster@tonsite.com"))



'Mail en Carbon copie


email.Bcc.Add(
New Net.Mail.MailAddress(
"webmaster@sonsite.com"))



'Sujet du mail


email.Subject =
"Mon Mail"


'Format du mail en Html true en texte false


email.IsBodyHtml =
True



'R‚cup‚ration de la page html


email.Body = words



'Adresse du serveur SMTP


Client.Host =
"smtp.annumada.com"



'Login


Client.Credentials =
New Net.NetworkCredential(
"login",
"pass")



'Envoie du mail


Client.Send(email)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

13 févr. 2006 à 15:37
Désolé je me suis mal exprimé.
Sur mon site les internautes s'inscrive pour étre tenu au courant des nouveautés.
J'ai une base access.
Comment a partir d'une requète de séléction envoyer directement le mail à plusieur abonné.
Il ne faut pas que cela prenne trop de temps.

Marco Madagascar.
0
jesusonline
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
13 févr. 2006 à 16:19
Je pense que la boucle forest ton ami ;-)


<HR>
Cyril - MVS - MCP ASP
0
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

15 févr. 2006 à 07:06
Voici mon résultat il fonction mais me semble un peu long.
Question que pensez-vous de mon code.


Option
Explicit
On


Option
Strict
On


Imports System


Imports System.Data


Imports System.Data.OleDb



Partial
Class _Default



Inherits System.Web.UI.Page



Private
Shared
Function GetConnectionString()
As
String



Return
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _


&
"c:\Mail\DataMail.mdb;"



End
Function



Protected
Sub Button1_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles Button1.Click



Dim connectionString
As
String = GetConnectionString()



Dim queryString
As
String =
"SELECT DISTINCT [Mail] FROM [DataM]"



Using connection
As
New OleDbConnection(connectionString)



Dim command
As OleDbCommand = connection.CreateCommand()


command.CommandText = queryString


connection.Open()


MsgBox(
"Connection ouverte")



Dim reader
As OleDbDataReader = Command.ExecuteReader()


MsgBox(
"Lecture ok")



While reader.Read()



'Creation d'un mail



Dim email
As
New System.Net.Mail.MailMessage()



Dim Client
As
New Net.Mail.SmtpClient



'Lecture du fichier texte et mise dans un string



Dim file
As
New System.IO.StreamReader(
"c:\Mail\TextFile.txt")



Dim words
As
String = file.ReadToEnd()



Try



Catch ex
As Exception



' Gestion d'une erreure


MsgBox(
"ERREUR d'ouverture du fichier " & Chr(10) & Chr(13) & ex.Message)



Exit
Sub



Exit
Try



Finally



If
Not file
Is
Nothing
Then file.Close()



End
Try



'Fermeture du fichier texte


file.Close()



'Mail de


email.From =
New Net.Mail.MailAddress(
"webmaster@monsite.com")



'Mail to


email.To.Add(
New Net.Mail.MailAddress(reader(0).ToString()))



'Mail copie conforme



'email.CC.Add(New Net.Mail.MailAddress("webmaster@tonsite.com"))



'Mail en Carbon copie



'email.Bcc.Add(New Net.Mail.MailAddress("webmaster@sonsite.com"))



'Sujet du mail


email.Subject =
"Test d'envoie d'un mail html"


'Format du mail en Html true en texte false


email.IsBodyHtml =
True



'R‚cup‚ration de la page html


email.Body = words



'Adresse du serveur SMTP


Client.Host =
"smtp.monsite.com"



'Login


Client.Credentials =
New Net.NetworkCredential(
"login",
"pass")



'Envoie du mail


Client.Send(email)



End
While


connection.Close()


MsgBox(
"Connection fermer")



End
Using


MsgBox(
"Envoi fini")



End
Sub


End
Class

Merci de votre aide et de vos remarques.
Marco Madagascar
0
cs_azra
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
13 juillet 2007
1
15 févr. 2006 à 12:24
Bonjour,

Tu n'as pas besoin de mettre la lecture de ton fichier dans la boucle, elle est tjrs identique, donc tu peux le faire avant.
Sinon, si tu veux un truc totalement parametrable, je te conseille de configurer le serveur Mail directement dans le Web.config (system.net / mail) de mémoire.
Si tu es en 2.0, tu peux le faire directement depuis l'interface web d'admin (le 4eme onglet).

Sinon, pense a cocher "réponse acceptée" sur ce forum lorsque une ou des réponses te viennent en aide stp.

Bon courage,


<HR>
Azra (Florent) - MVS - MCAD.NET
0
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

15 févr. 2006 à 12:35
Merci de ta réponse.
Pense tu que je puisse mettre cette source en source lorsqu'elle sera optimiser.

Marco Madagascar
0
cs_azra
Messages postés
425
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
13 juillet 2007
1
15 févr. 2006 à 12:37
Il faut juste verifier qu'il n'y en ait pas déja une similaire :)
Mais aspfr est fait pour laisser tes sources, donc il ne faut pas hesiter!!!


<HR>
Azra (Florent) - MVS - MCAD.NET
0
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

24 févr. 2006 à 08:34
Bonjour à tous,


1°) Comment faire pour que si une adresse mail n'est plus valable cela ne bloque pas le programme.
2°) Comment faire pour pourvoir faire partir plusieur mail en simultamer.

Merci encore de votre aide.

Marco Madagascar
0
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

24 févr. 2006 à 14:34
Merci de ta réponse qui ma mis sur une bonne.


Grace à la source


http://www.aspfr.com/codes/NET-CLASSE-LOG-EVENEMENT_27370.aspx

J'ai fait encore plus que je ne le souhaiter
0
AnnuMada
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

24 févr. 2006 à 14:36
J'enregistre dans un fichir texte les message erreur renvoyés par le serveur smtp
0
jubourbon
Messages postés
40
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
3 juillet 2009

11 mars 2009 à 11:01
Bonjour à tous, j'ai enfin trouvé grace à ce sujet comment specifié les parametres d'authentification pour l'envoi de mail en asp.Net 2.0, et merci.

Mais cependant ca ne fonctionne pas chez moi. J'essaye d'envoyer un mail via mon compte gmail, dont le smtp est smtp.gmail.com

J'ai renseigné le Credentials comme indiqué dans ce sujet, mais il me dit impossible de resoudre l'adresse.

J'avoue que le fonctionnement de ce credentials est un mystere pour moi, si qq un pouvait m'apporter qq reponses.

Merci d'avance.
0