11 Ağustos 2015

C# Mail Gönderme

Bu yazımda c# içerisinde mail gönderme kodlarını paylaşacağım.
Mail göndermek için öncelikle kullandığımız kütüphaneler aşağıdadır.

using System;
using System.Net;
using System.Net.Mail;

Ben işlemleri bir class içerisinde topladım. Bu clasımın adımı MailIslemleri olarak tanımladım.

public class Mail içerisinde mail gönderirken ihtiyacımız olan değişkenler tanımlanmıştır.
Bunların içerisinde EkAdres dosya eklemek istiyorsanız ekleyeceğiniz dosyanın bilgisayar içerisindeki adıdır.
Mesela c:\ ornek.txt eklemek istersek EkAdres="c:\\ornek.txt"; olarak tanımlanır.


Host ve Port için genel olarak kullanılan değerler sırasıyla aşağıdaki gibidir.

Hotmail,Outlook : Host:587, Host:smtp.live.com
Gmail: Host:587, Host:smtp.gmail.com
Yandex: Host:587, Host:smtp.yandex.ru


Burada gmail eğer güvenlik nedeniyle göndermenize izin vermiyorsa aşağıdaki adresten izin verebilirsiniz:
https://www.google.com/settings/security/lesssecureapps

Uygulamanın kaynak kodlarını yazının altında paylaşacağım.

 public class MailIslemleri
    {

        public class Mail
        {
            public string MailAdresim { get; set; }
            public string MailSifrem { get; set; }
            public string Host { get; set; }
            public int Port { get; set; }
            public string MailKonu { get; set; }
            public string MailIcerik { get; set; }
            public string GonderilecekMailAdresi { get; set; }
            public bool SSL { get; set; }
            public string EkAdres { get; set; }
        }
        public static string MailGonder(Mail mail)
        {
            string sonuc = "Mail gönderilirken hata oluştu.";
            try
            {
                using (MailMessage mailMesaj = new MailMessage())
                {
                    mailMesaj.From = new MailAddress(mail.MailAdresim);
                    mailMesaj.To.Add(mail.GonderilecekMailAdresi);
                    mailMesaj.Subject = mail.MailKonu;
                    mailMesaj.Body = mail.MailIcerik;
                    mailMesaj.IsBodyHtml = true;

                    //Ek Dosya Ekleme
                    if (!string.IsNullOrEmpty(mail.EkAdres))
                    {
                        Attachment ekDosya = new Attachment(mail.EkAdres);
                        mailMesaj.Attachments.Add(ekDosya);
                    }


                    using (SmtpClient client = new SmtpClient(mail.Host, mail.Port))
                    {

                        client.Credentials = new NetworkCredential(mail.MailAdresim, mail.MailSifrem);
                        client.EnableSsl = mail.SSL;
                        client.Send(mailMesaj);
                        sonuc = "Mail gönderildi.";

                    }
                }
            }
            catch(Exception ex)
            {
                sonuc = ex.Message;
            }
            return sonuc;
        }
    }



 Programın Kaynak Kodları :indir
Exe Dosyası