Web Configdeki mail ayarlarını kullanma

Öncelikle Web.config dosyamızda mail ayarlarını yapıyoruz.

<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="testuser@domail.com">
<network defaultCredentials="true" host="localhost" port="25" userName="kaushal" password="testPassword"/>
</smtp>
</mailSettings>
</system.net>

Kod tarafından tanımlı mail ayarlarını ise aşağıdaki gibi alabilirsiniz.

Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings");
Response.Write("host: " + settings.Smtp.Network.Host + "<br />");
Response.Write("port: " + settings.Smtp.Network.Port + "<br />");
Response.Write("Username: " + settings.Smtp.Network.UserName + "<br />");
Response.Write("Password: " + settings.Smtp.Network.Password + "<br />");
Response.Write("from: " + settings.Smtp.From + "<br />");

Asp.Net mail gönderme

Mail göndermek için kullanığım fonksiyonum

//mail ayarlarını,şifre,smtp,port vs çekiyor veri tabanından
public static Dictionary keys = SettingsManager.GetSettingsByPage("mail");

//mail göndermek için SMTP ayarlarının alacak.
private static SmtpClient CreateSmtpClient()
{
    NetworkCredential networkCredential = new NetworkCredential(keys["SmtpMail"], keys["SmtpPassword"]);
    SmtpClient smtpClient = new SmtpClient("localhost");
    smtpClient.Host = keys["SmtpHost"];
    smtpClient.UseDefaultCredentials = false;
    smtpClient.Credentials = networkCredential;
    smtpClient.Port = Convert.ToInt32(keys["Port"]);
    if (keys["EnableSsl"].ToLower()=="true")
       smtpClient.EnableSsl = true;
    else smtpClient.EnableSsl = false;
    return smtpClient;
}

//Maili gönderecek olan fonksiyonum, mail konusu,içeriği ve mailin gönderileceği kullanıcı mail adreslerini gönderiyoruz
public bool SendMail(string subject, string body, string[] emailUser)
{
    try
    {
        using (MailMessage mail = new MailMessage())
        {
            SmtpClient smtpClient = CreateSmtpClient();
            Regex reg = new Regex(@"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$");
            mail.From = new MailAddress(keys["SmtpMail"]);
            foreach (var item in emailUser)
            {
                 if(!string.IsNullOrEmpty(item))
                 if (reg.IsMatch(item))
                 mail.To.Add(item);
             }
             mail.Subject = subject;
             mail.Body = body;
             mail.BodyEncoding = Encoding.Default;
             mail.IsBodyHtml = true;
             smtpClient.Send(mail);
             return true;
         }
    }
    catch
    {
        return false;
     }
}