2016-11-04 2 views
0

J'ai spécifié l'adresse "de" dans le fichier de configuration de l'application dans la section from de la balise system.net> mailSetttings> smtp.Comment utiliser l'adresse "de" spécifiée dans le fichier de configuration de l'application pour envoyer un message smtp dans .net?

Cependant, je dois aussi spécifier l'adresse "from" dans le code du constructeur MailMessage. Quand je le fais dans le code, l'adresse du code écrase l'adresse du fichier de configuration. Que dois-je faire pour que l'adresse "de" du fichier de configuration soit utilisée? L'utilisation d'une chaîne vide ou vide entraîne des exceptions.

code:

MailMessage notificationMessage = new MailMessage(/*cannot be null or empty here!*/null, toAddress) 
{ 
    Subject = subject, 
    Body = messageBodyText, 
    IsBodyHtml = false, 
    SubjectEncoding = Encoding.UTF8, 
    BodyEncoding = Encoding.UTF8 
}; 

Répondre

1

Vous pouvez écrire la classe proxy dans les messages de courrier et dans cette classe, vous pouvez coder en dur par défaut de la valeur :) solution simple et laid mais très facile :)

+0

Je cherche quelque chose de plus élégant et paresseux, sinon je pourrais simplement utiliser une collection personnalisée dans le fichier de configuration. Après tout - quel est cet attribut "de" si vous ne pouvez pas l'utiliser? :) – Greg

+0

"De" a été une valeur par défaut pour, par exemple, "[email protected]" et ce paramètre peut être un dernier dans le constructeur et peut être un optionnel :) mais oui cette solution de résolution est très moche et doit être une balise todo :) –

0

Got it:

//use the constructor without parameters   
MailMessage notificationMessage = new MailMessage() 
{ 
    Subject = subject, 
    Body = messageBodyText, 
    IsBodyHtml = false, 
    SubjectEncoding = Encoding.UTF8, 
    BodyEncoding = Encoding.UTF8, 
}; 
//add the To address later 
notificationMessage.To.Add(toAddress); 
//from not specified, the default value from the app/web.config will be used.