Czasami małe rzeczy sprawiają dużo radości. Jedną z nich jest możliwość ustawienia klienta pocztowego SmptClient poprzez wpisy w pliku konfiguracyjnym aplikacji. Rozważmy przykład:
string mailAddresses = ConfigurationManager.
AppSettings["mailAddresses"];
if (string.IsNullOrEmpty(mailAddresses)){
return;
}
MailMessage message = new MailMessage();
message.From = new MailAddress("wnioski@homski.pl", "Wnioski");
foreach (string mailAddress in mailAddresses.Split(';')){
message.To.Add(new MailAddress(mailAddress));
}
message.SubjectEncoding = Encoding.UTF8;
message.Subject = "Tytuł wiadomości";
message.BodyEncoding = Encoding.UTF8;
message.Body = "Treść wiadomości";
SmtpClient client = new SmtpClient();
client.Send(message);
Z pliki config aplikacji pobieram informację o adresach, do których należy pocztę wysłać. Następnie buduję wiadomość i wysyłam. Nie konfiguruję w kodzie programu zupełnie danych serwera SMTP, który posłuży do wysłania poczty. Zamiast tego pozwalam klasie SmptClient na samodzielne pobranie tych informacji z konfiguracji:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network host="smtp.homski.pl"
userName=""
password=""/>
</smtp>
</mailSettings>
</system.net>
<appSettings>
<add key="mailAddresses"
value="arkadiusz.wasniewski@data.pl"/>
</appSettings>
</configuration>
Szczegóły schematu network (oraz elementów nadrzędnych) można znaleźć na stronach msdn.