PDA

View Full Version : [C#] leggere impostazioni mail dal webconfig


MrBlade
04-08-2009, 08:46
salve, ho realizzato una form in c# che mi consente di inviare dati a un indirizzo di posta, l'smtp e il destinatario sono scritti nel codice.
volevo sapere come posso fare per andare a leggere questi parametri direttamente dal web config. Nel <mailSettings> del web config ho però un'altra configurazione che uso per altri form, quindi non vorrei usarla. Grazie!!

code:
void SendEmail(string status)
{
try
{
MailMessage oMsg = new MailMessage();
oMsg.BodyFormat = MailFormat.Html;
oMsg.Subject = "Richiesta informazioni";
oMsg.Body = "<html><body>";

if (status == "GUEST")
{
oMsg.To = EmailTB.Text;
oMsg.From = "from@mail.com";

oMsg.Body += "<p>messaggio consegnato</p>";

}
else
{
oMsg.Headers.Add("Reply-To", EmailTB.Text);
oMsg.To = "from@mail.com";
oMsg.From = "from@mail.com";
oMsg.Body += "Hai ricevuto una richiesta informazioni.";
oMsg.Body += "Richiedente:</p><p>";
oMsg.Body += "Indirizzo: " + Server.HtmlEncode(indirizzo.Text);
oMsg.Body += "<br>CAP: " + Server.HtmlEncode(cap.Text);
oMsg.Body += "<br>Città: " + Server.HtmlEncode(citta.Text);
}

oMsg.Body += "</body></html>";

SmtpMail.SmtpServer = "smtp.server.it";
SmtpMail.Send(oMsg);

oMsg = null;

}

catch (Exception e)
{
Console.WriteLine("{0} Exception caught.", e);
}
}

morskott
04-08-2009, 09:20
per leggere da files di configurazione so che bisogna guardare questo namespace (http://msdn.microsoft.com/en-us/library/system.configuration.aspx), però non avendolo mai fatto in pratica non so come realmente farlo

tomminno
04-08-2009, 12:17
Che io sappia MailSettings può contenere informazioni su un solo server smtp.
Se ne hai già uno e ne vuoi usare un altro puoi usare la sezione appsettings e definirne valore come più ti piace.

MrBlade
04-08-2009, 15:13
si infatti, però non so come leggerla,
nel web config ho scritto:

<appSettings>
<add key="mailto" value="mymail@domain.it" />
</appSettings>

nel codice dove devo leggere nel webconfig:


string leggimail()
{
System.Configuration.Configuration rootWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/mysite");

System.Configuration.AppSettingsReader mailto;
if (0 < rootWebConfig.AppSettings.Settings.Count)
{

mailto = rootWebConfig.AppSettings["mailto"].ToString();

if (null != mailto)
return mailto.ToString();
else
return "";

}
else return "";

}



però è ovvio che non funziona...