209 Görüntülenme

C# Mail Gönderme İşlemleri

C# Mail Gönderme İşlemleri
İlk Beğenen Sel Ol

C# Mail Gönderme İşlemleri, yazım ile karşınızdayım. C Sharp Mail Gönderme İşlemleri , şüphesiz ki hemen hemen tüm projelerimizde bizlere lazım olan bir işlemdir.  Özellikle erp, crm gibi büyük projelerde mutlaka lazım olan bir işlemdir. Örnek olarak bir satın alma talebi açıldığında ilgili kişilere mail gönderilmesini isteyebiliriz. Yada bir operatör arıza kaydı açtığında bakım departmanındaki bir yetkiliye mail gönderilmesini isteyebiliriz. Bu gibi işlemler projeyi daha profesyonel bir hale getirecektir. Hemde yöneticilerinde hoşuna gidecektir. En çok kullanmamız gerekecek olan kısımlardan birisi de şirket yöneticilerine raporların otomatik olarak mail gönderilmesidir. İnsanların hazırlayacağı raporlardan daha dakik, daha doğru sonuçları içereceklerinden de şüphe duyulmayacaktır. Bu sebeplerde mail gönderme işlemi çok gerekli bir işlem olduğundan bu dersimi de verebildiğim kadar açıklayıcı yazmaya çalışacağım. Gelin C Sharp Mail Gönderme İşlemleri nasıl yapacağımızı görelim.

C Sharp Mail Gönderme İşlemleri

Giriş bölümünde gerekliliklerini belirttim. Bu kısımda direk kodlara geçelim. Kodlarımızla birlikte diğer gerekli açıklamaları da vereceğim.

Öncelikle bu eğitim setimin ilk dersi olan Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım! yazımda ve hemen hemen tüm yazılarımda sürekli bahsettiğim gibi bir class açıyoruz.

Kendi class’ımı direk sizinle paylaşacağım. Bazı sorunlar sebebi ile çalıştığına emin olduğum kodları değil başka bir projemden bulduğum kodları yazacağım. Büyük ihtimalle çalışıyordur ancak %100 emin değilim. Denemelerini yapıp kontrol edersiniz. Sorun yaşarsanız iletişim sayfamdaki iletişim bilgilerimden yada sosyal medya hesaplarımdan bana ulaşabilirsiniz.

NOT: Aşağıda verdiğim kodlarda c# mail gönderme dosya ekleme işlemi de vardır.

C Sharp Mail Gönderme İşlemleri

Mail gönderme kodlarımız.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail; // mail gönderme işlemleri için gereklidir.
using System.Text;
using System.Text.RegularExpressions; // regex komutunu kullanabilmemiz için gereklidir.
namespace DenemeProje.Metodlar
{
public static class SendMail
{
public static bool Send(string MailHesabi, string MailHesapSifresi, string MailUnvan, string MailAdresi, string MailKonu, string MailIcerik, string MailEkleri, string Pop3Host , int Pop3Port)
{
try
{
System.Net.NetworkCredential cred = new System.Net.NetworkCredential(MailHesabi, MailHesapSifresi);
// mail göndermek için oturum açtık
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); // yeni mail oluşturduk
mail.From = new System.Net.Mail.MailAddress(MailHesabi, MailUnvan); // maili gönderecek hesabı belirttik
mail.To.Add(MailAdresi); // mail gönderilecek adres
mail.Subject = MailKonu; // mailin konusu
mail.IsBodyHtml = true; // mail içeriği html olarak gönderilsin
mail.Body = MailIcerik; // mailin içeriği
mail.Attachments.Clear(); // mail eklerini temizledik
string[] sonuc1 = Regex.Split(MailEkleri, "/");
// MailEkleri parametresinde mailie ekleyeceğimiz tüm dosyaları aralarına " / " koyarak birbilerine ekledik
foreach (string items in sonuc1)
{
if (items != "")
{
mail.Attachments.Add(new Attachment("\\Mail_Eklerinin_Yolu\\" + items));
//  MailEkleri parametresinden gelen veriyi " / " işareti sayesinde parçaladık. 
// Kaydettiğimiz yerin yolunu ile birlikte dosyaları aldık ve maile ekledik.
}
}
// göndereceğimiz maili hazırladık.
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(Pop3Host, Pop3Port); // smtp servere bağlandık
smtp.UseDefaultCredentials = false; // varsayılan girişi kullanmadık
smtp.EnableSsl = true; // ssl kullanımına izin verdik
smtp.Credentials = cred; // server üzerindeki oturumumuzu yukarıda belirttiğimiz NetworkCredential üzerinden sağladık.
smtp.Send(mail); // mailimizi gönderdik.
// smtp yani Simple Mail Transfer Protocol üzerinden maili gönderiyoruz.
return true;
}
catch (Exception)
{
return false;
}
}
}
}

Kodlarımızın hepsi yukarıdaki gibidir. Kodları biraz açıklamak gerekirse;

Yukarıdaki mail gönderme işlemi POP3 üzerinden mail gönderme işlemidir. POP3 host ve Port numaralarını hangi şirket ile çalışıyorsanız o şirketten almanız gerekmektedir. Gmail, hotmail gibi mailleri kullanıyorsanız bu bilgileri internette rahatlıkla bulabilirsiniz.

NOT: GMAIL üzerinden mail gönderebilmeniz için, mail göndereceğiniz hesapta oturum açtıktan sonra “https://myaccount.google.com/lesssecureapps?pli=1” bu adrese giderek Daha az güvenli uygulamalara izin ver: KAPALI ayarını AÇIK olarak değiştirmelisiniz. Aksi takdirde mailler gönderilmeyecektir.

Kodlarımızı try catch içerisine aldık. Mail gönderilmez ise metodumuz false, gönderilirse true değer gönderecektir. Bizde bu şekilde mailin durumunu anlayabileceğiz.

Bu kodları IMAP üzeriden mail gönderecek şekilde ayarlayabilirsiniz. Ancak bazı farklılıklar olabilir. Bu farklılıklar tüm kodları değiştirmenizi gerektirecek kadar çok ise, yine bu class içerisine bir metod daha tanımlarsınız, IMAP ve POP3 olarak adlarını değiştirir rahatlıkla kullanırsınız.


C Sharp Mail Gönderme İşlemleri , dersimiz de bu kadar dostlar. Diğer c sharp eğitimleri derslerimizde görüşmek üzere…

C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız. 

Takipte ve Sağlıcakla kalın. 😉

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.