ENVOYER UN MAIL EN ASP.NET

cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016 - 27 mai 2002 à 16:21
sergeszebe Messages postés 180 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 8 octobre 2009 - 5 août 2009 à 11:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8710-envoyer-un-mail-en-asp-net

sergeszebe Messages postés 180 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 8 octobre 2009
5 août 2009 à 11:42
ouf! c'est clair dans ma tete .
ok moi c'est pareil.
en effet je veux faire la meme chose.
Mais sauf que ton code ne marche pas chez moi.et on me demande d'inserer les information du formulaire (envoimsg)dans une base BDmessagerie
la base est en Sql server.
mais je ne parviens pas a envoyer mes mail en gros a creer un enregistrement dans une table.
pourvoir par la suite afficher ds un tablo l'historique des message.
pour vl'envoit des message voici ce que j'ai fait.
à l'aide please

code:

<%@ Page Language="VB" AutoEventWireup="false" %>
<%@ Import Namespace="System.Data.SqlClient" %>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">


Protected Sub objet_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub

Protected Sub btn_envoi_msg_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim InsertText, lblMsg As String
Dim j As Integer
Dim int_Admin As Integer = 0
Dim int_Fact As Integer = 0
Dim int_Devis As Integer = 0
' Connection à  la base de données
Dim cn As New SqlConnection()
cn.ConnectionString = ConfigurationSettings.AppSettings("WTS_ExtraSQL")
cn.Open()

'création d'un mail

InsertText = "INSERT INTO wts_messagerie_interne(expediteur,destinateur,objet,message) VALUES ( lb_expediteur.Text, lb_destinataire.Text lb_objet, txtmsg )"

Dim Ins1 As New SqlCommand(InsertText, cn)
Try
j = Ins1.ExecuteNonQuery()
lblMsg = "l'Agent a été Ajouté"
Response.Redirect("accueil_societe.aspx")
Catch ex As Exception
lblMsg = "erreur lors de l'ajout"
End Try
Ins1 = Nothing
cn.Close()
End Sub

</script>
<html>..........</html>
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
5 août 2009 à 11:34
Salut Serge,
Mon code est du VB.net est fait parti d'une page ".aspx".
Il s'agit donc d'asp.net codé en VB.net.
;)
sergeszebe Messages postés 180 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 8 octobre 2009
5 août 2009 à 10:57
salut a tous:
Nouveau je voudrait savoir s'il est logique qu'au debut on ait:
Page Language="VB" mais l'extension aspx il s'agit de quoi dans ce cas'asp.net ou vb.net?

je voudrais savoir si quelqu'un a le meme code en aspx ?
cs_ardi Messages postés 3 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 4 janvier 2006
4 janv. 2006 à 17:09
j'essaie le code mais je heurte sur le bug suivant:

Parser Error Message: The XML file c:\winnt\microsoft.net\framework\v1.1.4322\Config\machine.config could not be loaded. Attempted to access an unloaded AppDomain.

quelqu'un pour m'aider:(
cs_ardi Messages postés 3 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 4 janvier 2006
4 janv. 2006 à 12:29
J'aimerais utiliser un compte SMTP pour envoyer des mails. Comment préciser le username et le password? En fait j'utilise un serveur smtp qui n'autorise pas de open relay.

Merci d'avance
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
14 oct. 2005 à 14:06
Juste pour préciser, ce code est insérable en VB dans une page ASP.Net dans la partie code VB.
oumart Messages postés 1 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 24 novembre 2004
24 nov. 2004 à 03:09
Je trouve que tu n'est pas tres explicit....
Ou est ce qu'on met l'addresse l'email qui va chargee de collect le donnees saisies dans les champs?
Qu'est ce qu'on doit mettre dans expediteur.txt?destinateur.txt?
Quand tu dis simple a utiliser,alors montre toutes les parties qu'on doit modifier.
Merci
GillesWebmaster Messages postés 496 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 29 juillet 2009 1
28 août 2004 à 10:57
marlon INC.peux tu mettre ton code dans la rubrique spéciale pour poser ces codes stp car les >< Ca ne me plait pas trop merci
G_____
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
18 mai 2003 à 12:21
mais ca marche comme j'ai fait la ... c cool !! :-)
Merci, a+.
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
18 mai 2003 à 11:09
lol on s'est bien embete pour rien :)
mais je comprendd tj pas pourkoi ca marche pas
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
18 mai 2003 à 09:37
Yesssssss !!! Ca y est !!
Trop bête !! J'ai trouvé ! Les accents passent enfin sans aucuns problémes...
La soluce ?
Ben j'ai enlevé le :
"ContentType="text/html" ResponseEncoding="iso-8859-1" de ma directive @page c'est tout !
Pas besoin de replace ou server.htmlencode, ca passe tout seul finalement.
C'est fou non ? Keske tu en penses jesus ?
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
18 mai 2003 à 09:24
Moi je comprends pas bien ta question ...
T'as un message d'erreur avec "attendu" ?
Koi ki est attendu ?
cs_mage Messages postés 22 Date d'inscription vendredi 7 juin 2002 Statut Membre Dernière intervention 23 novembre 2003
18 mai 2003 à 01:26
bonjour moi j'ai le message :"attendu" une personne peut me dire pourquoi voici ligne qui est coupable
Ligne 8 :
Ligne 9 : // Création de l'instance d'une nouvelle classe MailMessage
Ligne 10 : MailMessage maildef=New MailMessage();<== ligne coupable
Ligne 11 :
Ligne 12 : // adresse de l'expéditeur et du destinataire
je vous en remercie par avance
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 17:00
je te remercie de ton aide en tous cas jesusonline !.
Oui les requiredfield validator sont prévus mais la je bloque sur ca ...
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 mai 2003 à 16:54
System.Web.Mail.MailMessage.BodyEncoding = System.Text.UTF8Encoding mais je sais pas si ca va servir a grand chose sinon dans ta page mais des RequiredFieldValidator cela t'evitera une gestion d'erreur par exemple lorsque t'envoie un mail sans @ etc.. mais je comprend pas pourkoi ca bug normalement ca devrait marchait. Regarde si t'as le SDK pour savoir comment marche la classe, sinon regarde chez www.microsoft.com
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 14:27
Avec "server.htmlencode" et "System.Web.HttpUtility.htmlencode(mymessage.text)" y'a plus besoin de la fonction...
Mais les accents passent toujours pas..
C a devenir fou.
Je passe l'url si tu veux essayer par toi même jesus..tu peux t'envoyer un petit mail..
http://marloon.zapto.org/admin/mail.aspx
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 mai 2003 à 14:11
voici l'exemple du SDK
L'exemple suivant code une chaîne en vue de sa transmission par HTTP. La chaîne nommée TestString qui contient le texte "This is a <Test String>." est codée, puis copiée dans la chaîne nommée EncodedString sous la forme "This+is+a+%3cTest+String%3e.".

Dim TestString As String = "This is a <Test String>."
Dim EncodedString As String = Server.HtmlEncode(TestString)

HtmlEncode est aussi un membre de System.Web.HttpUtility et s'utilise de la meme facon donc tu as juste a choisir l'une des deux methodes, je prendrais celle la car elle utilise un classe et c peut etre plus simple, mais normalement ca devrait qd meme marcher

.Body &= "Message : " & htmlencode(mymessage.text) & "
"
devient
.Body &= "Message : " & System.Web.HttpUtility.htmlencode(mymessage.text) & "
"
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 13:18
Et bé non,
quand j'enleve la fonction (ki est vide?) il me fait :

BC30451: Le nom 'htmlencode' n'est pas déclaré.
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 mai 2003 à 12:29
normalement ca c bon : .Body &= "Message : " & htmlencode(mymessage.text) & "
" mais cette ligne te sert a rien:
Overloads Public Shared Function HtmlEncode(ByVal s As String) As String

End Function
et c peut etre pas impossible qu'elle est la cause du probleme car qd t'appeles cette fonction tu retournes aucun string donc se serait pour ca que t'as rien essaye sans cette ligne et normalement c bon
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 12:11
et le corp du message est vide lui aussi...
Voila comment je l'ai modifié..
.Body &= "Message : " & htmlencode(mymessage.text) & "
"
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 12:10
le response write de mon htmlencode(mymessage.text) reste vide !!
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 12:00
Je vais mettre mon code paske j'ai du mal a suivre..

<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="iso-8859-1" trace="true" %>
<%@ Import Namespace="System.Web.Mail" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">

Sub Page_load(sender As Object,e As EventArgs)
If Request.IsAuthenticated = true Then
lblStatus.Text = "..:: Bienvenue " & User.Identity.Name
lblStatus.visible = "True"
end if
End sub

Overloads Public Shared Function HtmlEncode(ByVal s As String) As String

End Function

Sub btn_gomail_click(s as object, e as eventargs)
Dim myMail as New mailmessage
With myMail

Dim strlocation as string = "c:inetpubwwwrootpouitadmin emp"
Dim strfichierup as string
strfichierup = Path.GetFileName(fichierup.PostedFile.FileName)
.from = "zoomzoom@pouit.fr"
.To = destinataire.text
.Subject = sujet.text
.Body = "Message envoyé !
"
.Body &= "A : " & destinataire.text &"
"
.Body &= "Sujet : " & sujet.text & "
"
.Body &= "Message : " & mymessage.text & "
"
.Body &= "Fichier joint : " & strfichierup & "
"
.Body &= ""
.Body &= "MarloonInc

Sommaire"
.Body = replace(.body,vbCrLf,"
")
.BodyFormat = MailFormat.Html

If strfichierup <> "" then

fichierup.PostedFile.SaveAs(strlocation & strfichierup)
Dim ofichierup as New MailAttachment(strlocation & strfichierup)
myMail.Attachments.Add(ofichierup)
End if
Try
SmtpMail.SmtpServer = "monserveur.fr"
SmtpMail.Send(myMail)
lblInfo.text &= .Body
Tabcompose.visible = false
If strfichierup <> "" then
File.Delete(strlocation & strfichierup)
End if
Catch ex as Exception
lblinfo.text = "Une erreur est survenue dans le traitement de votre message" & ex.Message.ToString
Tabcompose.visible = true
End Try
End With
end sub
</script>
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 mai 2003 à 11:43
maildef.Subject = htmlencode(sujet.text)

sinon regarde ce que vaut htmlencode(sujet.text) dans un response.write et regarde le code HTML générer pour voir si le codage est effectué ou non normalement le é devient & eacute;
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 11:35
et oui, il me mets des é a la place des & eacute; , donc veuillez corrigé svp...
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 10:57
Pardon, j'ai ecrit des conneries et j epeux pas corriger..
alors j'ai essayé :

replace(mymessage.text,"é","é")
Mais ca ne fonctione pas !!!
J'ai aussi essayé htmlencode mais ca a pas l'air de changer grand chose...
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
17 mai 2003 à 10:39
Salut jesus,
merci pour tes reponses !!
J'ai essayé ca :

replace(mymessage.text,"é","é")

Mais ca ne fonctione pas !!!
Je sais pas comment faire...help !
Quand un é est programmé, il passe sans probléme mais si j'en mets dans mon textbox, y passe pas !!
Comment faire ?
Je vais essayer htmlencode mais je sais pas bien comment faire...
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 mai 2003 à 21:06
avec les accents ca doit etre encore pareil faut utiliser le code HTML par exemple pour un é il faut ecrire é j'ai pas ecrit pareil qu'avant, j'ai ecrit & eacute; sans l'espace entre les eux membres, pour taper un message tres long, tapes le dans dream, ou he crois que tu peut utiliser une fonctionpour ca je crois que c'est htmlencode.

apres verification dans le SDK voici la syntaxe precise

HttpUtility.HtmlEncode, méthode (String) [Visual Basic]Voir aussi
HttpUtility, classe | HttpUtility, membres | System.Web, espace de noms | HttpUtility.HtmlEncode, liste de surcharge
Configuration requise
Plates-formes : Windows 2000, Windows XP Professional, Windows .NET Server family
Langage
C#

C++

JScript

Visual Basic

Afficher tout
Convertit une chaîne en chaîne codée en HTML pour une transmission HTTP fiable du serveur Web vers un client.

[Visual Basic]
Overloads Public Shared Function HtmlEncode( _
ByVal s As String _
) As String
[C#]
public static string HtmlEncode(
string s
);
[C++]
public: static String* HtmlEncode(
String* s
);
[JScript]
public static function HtmlEncode(
s : String
) : String;
Paramètres
s
Chaîne à coder.
Valeur de retour
Chaîne codée.

Notes
Si des caractères tels que des espaces et des signes de ponctuation sont passés dans un flux HTTP, ils risquent d'être mal interprétés à la réception. Le codage HTML convertit des caractères qui ne sont pas autorisés dans le langage HTML en équivalents d'entités de caractères ; le décodage HTML inverse le codage. Par exemple, lorsqu'ils sont incorporés dans un bloc de texte, les caractères < et > sont codés en tant que < et > pour une transmission HTTP.

normalement c bon ;-)

@+
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
15 mai 2003 à 20:49
les sauts de lignes, j'ai mis
replace(.body,vbCrLf,"
")
qui fonctionne impeccablement.

Mais maintenant, j'ai le même probléme avec les accents....
Kelkun sait ?? Merci encore jesus !! ;-)
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
15 mai 2003 à 20:28
ca doit etre de l'html donc
ou sinon essaye /n voila mais c pas sur
marloon Messages postés 46 Date d'inscription mercredi 13 novembre 2002 Statut Membre Dernière intervention 14 avril 2005 1
15 mai 2003 à 19:21
C 'est l'adresse de ton serveur smtp kil faut mettre à la place...

Par contre, si kelkun sait comment faire passer les sauts de ligne dans ce genre de mail, ca m'interesse fortement... Merci.

MarloonInc.
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
13 mars 2003 à 19:13
La source ne semble pas venir de toi je l'ai vu sur asp-php mais c pas la le pb. Pourrais tu me commenter cette ligne
SmtpMail.SmtpServer = "smtp.infonie.fr";
pourkoi infonie ou wanadoo c au pif comment qu'on fait pour savoir ce qu'il faut mettre
Kholera Messages postés 27 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 10 octobre 2002
10 oct. 2002 à 15:16
J'ai essayé au forma HTML, et ça fonctionne nickel... Le seul prob c'est qu'il semble que la propriété Body est une taille limite, car j'ai essayé avec la source d'une page "relativement" chargée (~14 Ko) et ça plante sans même afficher de page d'erreur.

Si qq'un connait cette taille limite ou a une soluc'... Merci !
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
27 mai 2002 à 16:21
sérieux il est pas mal ton code, mais des commentaire serait le bienvenue, je parle au nom des néophtie ( comme moi ).
rodcobalt22
Rejoignez-nous