ENVOYER UN MAIL EN ASP.NET

Signaler
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016
-
Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Statut
Membre
Dernière intervention
8 octobre 2009
-
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

Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Statut
Membre
Dernière intervention
8 octobre 2009

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>
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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.
;)
Messages postés
188
Date d'inscription
mardi 15 novembre 2005
Statut
Membre
Dernière intervention
8 octobre 2009

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 ?
Messages postés
3
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
4 janvier 2006

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:(
Messages postés
3
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
4 janvier 2006

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
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
Juste pour préciser, ce code est insérable en VB dans une page ASP.Net dans la partie code VB.
Messages postés
1
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
24 novembre 2004

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
Messages postés
496
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
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_____
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
mais ca marche comme j'ai fait la ... c cool !! :-)
Merci, a+.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
lol on s'est bien embete pour rien :)
mais je comprendd tj pas pourkoi ca marche pas
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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 ?
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
Moi je comprends pas bien ta question ...
T'as un message d'erreur avec "attendu" ?
Koi ki est attendu ?
Messages postés
22
Date d'inscription
vendredi 7 juin 2002
Statut
Membre
Dernière intervention
23 novembre 2003

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
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
je te remercie de ton aide en tous cas jesusonline !.
Oui les requiredfield validator sont prévus mais la je bloque sur ca ...
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
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
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
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) & "
"
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
Et bé non,
quand j'enleve la fonction (ki est vide?) il me fait :

BC30451: Le nom 'htmlencode' n'est pas déclaré.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
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
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
et le corp du message est vide lui aussi...
Voila comment je l'ai modifié..
.Body &= "Message : " & htmlencode(mymessage.text) & "
"
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
le response write de mon htmlencode(mymessage.text) reste vide !!
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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>
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
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;
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
et oui, il me mets des é a la place des & eacute; , donc veuillez corrigé svp...
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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...
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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...
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
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 ;-)

@+
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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 !! ;-)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
ca doit etre de l'html donc
ou sinon essaye /n voila mais c pas sur
Messages postés
46
Date d'inscription
mercredi 13 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2005
1
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.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
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
Messages postés
27
Date d'inscription
mercredi 11 octobre 2000
Statut
Membre
Dernière intervention
10 octobre 2002

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 !
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016

sérieux il est pas mal ton code, mais des commentaire serait le bienvenue, je parle au nom des néophtie ( comme moi ).
rodcobalt22