La classe SmtpClient permet de définir en C# les informations nécessaires pour envoyer un email à un serveur SMTP. Dans le cas d’une application où cette classe est utilisée à de nombreux endroits, il peut être contraignant (et source d’erreurs ainsi que de maintenance compliquée) de devoir répéter à chaque fois l’adresse du serveur, le port et d’autres informations propre à cette classe.

Il est donc très important de passer par le fichier de configuration pour définir une unique fois les informations de connexion au serveur.

<?xml version="1.0"?>

<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network">
        <network
          host="localhost"
          port="25"
          defaultCredentials="false"
        />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

Avec cette unique configuration, chaque instance de classe SmtpClient sera initialisée avec ces éléments.

using (SmtpClient smtpClient = new SmtpClient())
{
    MailMessage message = new MailMessage();

    message.From = new MailAddress("sample@mail.com", "Display Name");
    message.To.Add("dest@mail.com");
    message.Subject = "Subject email";
    message.Body = "Content email";
    message.IsBodyHtml = false;

    smtpClient.Send(message);
}

Plus d’informations sur MailSettings sur MSDN.