Smtp nin açılımı Simple Mail Transfer Protocolüdür. Smtp , giden posta sunucu olarak bilinir, mail göndermek için kullanılır. POP3 ve IMAP protokolleri gelen posta sunucusu olarak kullanılır.
Uygulamada .Net kullanmak için aşağıdaki iki alanın eklenmesi gerekir.
using System.Net;
using System.Net.Mail;
Ben mail ayarlarını config.ini dosyasında tanımlayıp o şekilde aldırdım.
<appSettings>
<add key="Veri" value="select * from SVK_Transfer" />
<add key="Email" value="esra@esraturan.com.tr" />
<add key="MailHost" value="mail.esraturan.com.tr" />
<add key="Sifre" value="." />
<add key="Host" value="mail.esraturan.com.tr" />
<add key="Domain" value="www.esraturan.com.tr" />
<add key="Port" value="587" />
<add key="SSL" value="False" />
<add key="Name" value="Esra Turan" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
public static void EmailService(Attachment attachmentFile, String[] mailList, AlternateView body, Attachment attachmentExcelFile)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient();
SmtpServer.Port = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Port"]);
//Giden port bilgisi tanımlanır.Genelde 587 ve 25 portları kullanılmaktadır.
SmtpServer.Host = System.Configuration.ConfigurationManager.AppSettings["Host"];
//Hostunuzun smtp için mail domaini
SmtpServer.EnableSsl = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["SSL"].ToString()); //ssl kullanılıyorsa true olarak gönderilir. Diğer durumlarda false gönderilir.
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings["Email"], System.Configuration.ConfigurationManager.AppSettings["Sifre"]);
//Burada hangi hesabı kullanarak mail yollayacaksanız onun ayarlarını yapmanız gerekiyor
mail.Sender = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["Email"]);
mail.From = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["Email"], System.Configuration.ConfigurationManager.AppSettings["Name"]);
mail.IsBodyHtml = true; // mailin gövde kısmı html olarak gönderilecekse true gönderilir.
mail.AlternateViews.Add(body);
mail.Attachments.Add(attachmentFile); // maile eklenecek ek kısımdır
if (attachmentExcelFile != null) mail.Attachments.Add(attachmentExcelFile);
foreach (string i in mailList)
{
mail.To.Add(new MailAddress(i, i)); //birden fazla ekleme attachment varsa
}
SmtpServer.Send(mail);
mail.Attachments.Dispose(); //Attachmenti ekleme yaptıktan sonra eğer dispose edilmesse klasöre çıkartığınız pdf veya excel dosyasını klasörden silerken hata alırsınız.
SmtpServer.Dispose();
}
C# ile basit anlamda SMTP üzerinden mail göndermek bu şekildedir. Herkese iyi çalışmalar. 🙂