Comment lire system.net/mailSettings/smtp à partir du Web.config
C'est mon web.config
paramètres de messagerie:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="[email protected]">
<network defaultCredentials="true" host="localhost" port="587" userName="[email protected]" password="123456"/>
</smtp>
</mailSettings>
</system.net>
et voici comment j'ai essayer de lire les valeurs de la web.config
var smtp = new System.Net.Mail.SmtpClient();
var credential = new System.Net.Configuration.SmtpSection().Network;
string strHost = smtp.Host;
int port = smtp.Port;
string strUserName = credential.UserName;
string strFromPass = credential.Password;
Mais les informations d'identification sont toujours nulles. Comment puis-je accéder à ces valeurs?
Vous devez vous connecter pour publier un commentaire.
Depuis, aucune réponse n'a été acceptée, et aucun des autres fonctionné pour moi:
Il n'est pas nécessaire d'utiliser la
ConfigurationManager
et obtenir les valeurs manuellement. Il suffit de l'instanciation d'unSmtpClient
est suffisant.C'est ce que MSDN dit:
Scott Guthrie a écrit un petit post sur qu'il y a quelque temps.
Par l'aide de la configuration, la ligne suivante:
Utilisera les valeurs configurées - vous n'avez pas besoin d'accéder et de les affecter à nouveau.
Comme pour le
null
valeurs - vous essayez d'accéder à la configuration des valeurs de manière incorrecte. Vous êtes tout simplement la création d'un videSmtpSection
au lieu de le lire à partir de la configuration.Je pense que si vous avez defaultCredentials="vrai" jeu, vous aurez les informations d'identification = null comme vous ne les utilisez pas.
Ne le mail lorsque vous appelez la .Envoyer méthode?
Donc
C'est ma configuration web de paramètres de messagerie:
et c'est cs
SmtpSection
au lieu de le lire à partir de la configuration.assurez-vous d'avoir de référence à System.Net dans votre application
Ensemble defaultCredentials="false", parce que quand il est défini à true, pas d'informations d'identification sont utilisées.