Problème Envoi de mail via outlook Asp.net

prasbanu Messages postés 18 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 19 octobre 2006 - 1 août 2006 à 15:43
prasbanu Messages postés 18 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 19 octobre 2006 - 1 août 2006 à 17:44
Bonjour!

Je n'arrive pas envoyer de mail via Microsoft outlook...ça fonctionne parfaitement avec un windows form et ça plante avec un web form....
 j'ai une erreur au niveau de l'application:
---------------------------------------------------------------------------------------------
Accès refusé.

Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.UnauthorizedAccessException: Accès refusé.

ASP.NET n'est pas autorisé à accéder à la ressource demandée. Accordez des droits d'accès à la ressource pour l'identité de la demande ASP.NET. ASP.NET a une identité de processus de base (en règle générale {MACHINE}\ASPNET sur IIS 5 ou Network Service sur IIS 6) qui est utilisée si l'application n'emprunte pas d'identité. Si l'application emprunte une identité via , l'identité sera l'utilisateur anonyme (en règle générale IUSR_MACHINENAME) ou l'utilisateur de la demande authentifié.

Pour accorder un accès en écriture ASP.NET à un fichier, cliquez avec le bouton droit sur le fichier dans l'Explorateur, choisissez "Propriétés" et sélectionnez l'onglet Sécurité. Cliquez sur "Ajouter" pour ajouter l'utilisateur ou le groupe approprié. Sélectionnez le compte ASP.NET et activez les cases à cocher pour l'accès souhaité.

Erreur source:

Ligne 13 :     Public Function startOutlook(ByVal toVal As String, ByVal subjectVal As String, ByVal bodyVal As String)
Ligne 14 :         'Return a reference to the MAPI layer
Ligne 15 :         Dim ol As New Outlook.Application
Ligne 16 :         Dim ns As Outlook.NameSpace
Ligne 17 :         Dim fdMail As Outlook.MAPIFolder



Fichier source :
c:\inetpub\wwwroot\crystalreport\OutlookMail.vb    Ligne : 15

-------------------------------------------------------------------------------------------------
Si qq'un pouvait m'aider
Merci d'avance

8 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 5
1 août 2006 à 16:06
Salut,
comme s'est écrit dans ton message d'erreur, tu dois autoriser le compte ASP.NET à accéder au fichier 'c:\inetpub\wwwroot\crystalreport\OutlookMail.vb
 '

Sur ton fichier : click droit-> propriétés->sécurité->ajouter (si aspnet est absent de la liste)

Puis tu saisis ASPNET, ti clicks sur Emplacements pour choisir ta machine ,Ok pui Vérifier Noms et tu valides.

Tu n'as plus qu'à allouer les droits nécessaires.

<hr />
@+  
0
prasbanu Messages postés 18 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 19 octobre 2006
1 août 2006 à 16:54
Merci pour ta réponse!

J'avais déja fais ça mais ça ne fonctionne pas,j'ai toujours le meme erreur....
Je suis une débutante en dotnet,
le fonctionnement de mon application,c'est que j'ai un formulaire aspx et j'envois via outlook des mails..
Si tu veux je t'envois le code complet, peut etre c'est mon code qui ne fonctionne pas..
----------------------------------------------
WebForm.aspx.vb

Imports

System
Imports

System.Drawing
Imports

System.Collections
Imports

System.ComponentModel
Imports

System.web
Imports

System.Data

Public
Class WebForm15

Inherits System.Web.UI.Page#

Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.<System.Diagnostics.DebuggerStepThrough()>

Private
Sub InitializeComponent()

End
Sub

Protected
WithEvents txtTo
As System.Web.UI.WebControls.TextBox

Protected
WithEvents txtSubject
As System.Web.UI.WebControls.TextBox

Protected
WithEvents txtBody
As System.Web.UI.WebControls.TextBox

Protected
WithEvents btnSend
As System.Web.UI.WebControls.Button

Protected
WithEvents btnClear
As System.Web.UI.WebControls.Button

'NOTE: The following placeholder declaration is required by the Web Form Designer.

'Do not delete or move it.

Private designerPlaceholderDeclaration
As System.Object

Private
Sub Page_Init(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Init

'CODEGEN: This method call is required by the Web Form Designer

'Do not modify it using the code editor.InitializeComponent()

End
Sub#

End
Region

Private
Sub Page_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load

'Put user code to initialize the page here

End
Sub

Private
Sub btnSend_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles btnSend.Click

If txtTo.Text.Length > 0
And txtSubject.Text.Length > 0
And txtBody.Text.Length > 0
Then

Dim oMail
As
New crystalreport.OutlookMailConsole.WriteLine("crystalreport.OutlookMail initialisé")

oMail.startOutlook(txtTo.Text, txtSubject.Text, txtBody.Text)

Console.WriteLine("Email est ajouté à outbox")

End
If

End
Sub
'btnSend_ClickEnd

Class
-------------------------------------------------------------------------------------------------------------------------------------------------

OutlookMail.vb
Imports

System

Imports

Outlook
Public

Class OutlookMail

'Public Function startOutlook(ByVal toVal As String, ByVal subjectVal As String, ByVal bodyVal As String)

'Param - toVal as String: email address of recipient

'Param - subjectVal as String: subject string

'Param - bodyVal as String: Email Text

Public
Function startOutlook(
ByVal toVal
As
String,
ByVal subjectVal
As
String,
ByVal bodyVal
As
String)

Dim ol
As
New Outlook.Application

Dim ns
As Outlook.NameSpace

Dim fdMail
As Outlook.MAPIFolderns = ol.GetNamespace("MAPI")

ns.Logon(, ,
True,
True)

Dim newMail
As Outlook.MailItem

fdMail = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox)
newMail fdMail.Items.Add(Outlook.OlItemType.olMailItem)newMail.Subject subjectVal

newMail.Body = bodyVal

newMail.To = toVal

newMail.SaveSentMessageFolder = fdMail

newMail.Send()

End
FunctionEnd

Class
--------------------------------------------------------------------------------------------------------------------------------------
Merci pour la rapidite de ta reponse!!!
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 5
1 août 2006 à 17:00
Es-tu sûr d'avoir alloué les bons droits? Vu le message d'erreur, je ne pense pas que ça vienne de ton code....

<hr />
@+  
0
prasbanu Messages postés 18 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 19 octobre 2006
1 août 2006 à 17:12
merci!!!!
Au fait j'ai coché toutes les cases...Je ne sais pas exactement si c'est bon ou pas...ça fonctionne tjs pas
quand je passse par windows application ça fonctionne correctement...Je ne conné rien sur les droits non plus...
 Je ne sais pas ke puisse je faire....
0

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

Posez votre question
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 5
1 août 2006 à 17:17
En application windows, tu n'as pas besoin de donner des droits au compte aspnet de la machine car tu ne "l'utilise" pas.
Le compte aspnet est utilisé par une application web.

Vérifie que les dossiers parents (jusqu'à wwwroot) possèdent aussi ses droits.

<hr />
@+  
0
prasbanu Messages postés 18 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 19 octobre 2006
1 août 2006 à 17:29
J'ai tout vérifié!ça fonctionne tjs pas,si c'est un problème de droits,il faut que j'e'n parle à l'administrateur de réseau je crois....

Si au niveau du code il n'ya pas d'erreur,je ne sais pas comment il faudrait le faire.....
Désolée si je t'ai dérangé et merci pour les réponse que tu m'as émises...
Je ne connais vraiment rien en réseaux,et aux droits...
Merci encore
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 5
1 août 2006 à 17:37
Ben désolé je ne vois pas.....

Cette ligne me paraît suspecte  : ns.Logon(, , True, True)

mais je ne connais pas cette fonction, c'est donc peut-être normal......

P.S : je pense que tu t'es planté d'endroit pour ton post....

<hr />
@+  
0
prasbanu Messages postés 18 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 19 octobre 2006
1 août 2006 à 17:44
MErci beaucoup,c'est 1ère fois que j'interviens sur un forum...

Merci beaucoup de ton aide!!
Bye
0
Rejoignez-nous