Envoi d'un mail en asp.net 2.0 en html [Résolu]

Signaler
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006
-
Messages postés
40
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
3 juillet 2009
-
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

Messages postés
426
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

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
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
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
Messages postés
426
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

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
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

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)
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

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.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
Je pense que la boucle forest ton ami ;-)


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

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
Messages postés
426
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

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
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

Merci de ta réponse.
Pense tu que je puisse mettre cette source en source lorsqu'elle sera optimiser.

Marco Madagascar
Messages postés
426
Date d'inscription
mercredi 22 janvier 2003
Statut
Modérateur
Dernière intervention
13 juillet 2007

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
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

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
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

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
Messages postés
29
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
2 mai 2006

J'enregistre dans un fichir texte les message erreur renvoyés par le serveur smtp
Messages postés
40
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
3 juillet 2009

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.