C# Mail Gönderme

0
53
c-sharp-mail-gönderme
C# Mail Gönderme

Merhaba Teknoloji Haberleri – Teknoloji Rehberi ailesi, bugün sizlere c# mail gönderme hakkında merak edilenleri yanıtlayacağız. Detaylı bilgiler için yazımızın devamını okuyabilirsiniz.

C# mail gönderme işlemleri sayesinde bir çok işimizi hızlı bir şekilde halledebiliriz. C Sharp Mail Gönderme olarak da bilinen bu işlemler, tüm projelerde kolaylık sağlamaktadır. Örneğin şirketler satın alma işlemi sonrası kişilere mail göndermek isteyebilir. Bu durumda otomatik mailler gitmesini sağlayabilirsiniz. C# mail gönderme ile ilgili detayları yazımızın devamında bulabilirsiniz.

Bu tarz küçük dokunuşlar şirket olarak daha profesyonel olmanızı sağlayacaktır. Ayrıca şirket yöneticilerine istedikleri raporlar mail yoluyla otomatik olarak gönderilebilmektedir. C# otomatik mail gönderme, görüldüğü üzere oldukça faydalı olan bir sistemdir.

C# İle Mail Gönderme Nasıl Yapılır?

Elbette ki c# ile mail gönderme kodlar sayesinde yapılmaktadır.  Aşağıda mail gönderme kodları yer almaktadır. Bu mail gönderme işlemi POP3 üzerinden gönderilen mail işlemidir. POP3 host numarası ve Port numarasını çalıştığınız şirketten almanız gerekecektir. Eğer gmail, hotmail hesaplarınız varsa bu bilgilere kolayca ulaşabilirsiniz.

Uyarı : C# gmail mail gönderme işlemi yapabilmeniz için mail göndereceğiniz hesabın açık olması gerekmektedir. Hesabınızı açıkken  https://myaccount.google.com/lesssecureapps?pli=1 adrese gidip daha az güvenli uygulamalara izin ver kısmını AÇIK olarak işaretlemeniz gerekecektir. Bu işlemi yapmadığınızda istediğiniz mailler gönderilmeyecektir. C# toplu mail gönderme işlemleri sayesinde bir anda birçok kişiye ulaşma fırsatı da bulabileceksiniz.

İlginizi Çekebilir: Arduino Değişkenler

 

Aşağıda mail gönderme kodları bulunmaktadır.

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;

}

}

}

}

Eğer herhangi bir mail gönderme olmazsa metodumuz false olacaktır, gönderilirse de true değer gönderecektir. Bu sayede mailin durumunu anlayabiliriz. Bu kodları IMAP üzerinden de kullanabilirsiniz. Ancak bu kodlarda bazı değişiklikler olabilmektedir.

Eğer çok fazla değişiklik yapmanız gerekirse bu class içerisinde bir metod tanımlaması yapabilirsiniz. IMAP ve POP3 adlarını değiştirip kolay bir şekilde kullanabilirsiniz.

C# Smtp Mail Gönderme

C# smtp mail gönderme, kimlik doğrulama yoluyla gönderilen mailleri kapsamaktadır. Bu kimlik doğrulama yapılmadan gönderilen mailler spam kutusuna düşebilir. Bu durumda mesajınızın okunma oranı düşecektir. Smpt nesnesi şu şekilde oluşturulur.

1 SmtpClient smtp = new SmtpClient();

 

Aşağıda örnek bir mail gönderme kod listesi bulunmaktadır.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

// eposta adında bir mail nesnesi oluştur

MailMessage eposta = new MailMessage();

// Giden mailde görünecek e-posta adresi ve isim email adresi smtp ile aynı olmayınca hata veriyor.

eposta.From = new MailAddress(“isim@outlook.com”,”KodDefteri.Net”);

// Mail gönderilecek kişi(ler). Eğer birden fazla kişiye gidecekse, kişiler arasına virgül koyulacak

eposta.To.Add(“isim1@mail1.com, isim2@mail2.com”);

eposta.CC.Add(“ism3@mail3.com, isim4@mail4.com”); // Bilgi maili gönerilecek kişileri CC özelliğine ekle

eposta.Bcc.Add(“isim5@mail5.com”); // Gizli alıcıları bcc özelliğine ekle

eposta.Subject = “C Sharp Dersleri”; // Mail konusunu subject özelliğine ekle

eposta.Body = “Bu bir email mesajıdır. Buraya mail içeriği gelecek”; // mesaj içeriğini body özelliğine ekle

// ekleri dosya yolu ile birlikte bir string dizisinde tutuyoruz

string[] ekler = {“c:\ek1.png”,”c:\ek2.pdf”,”c:\ek3.docx”}

// Ardından ekleri foreach döngüsü ile Attachments özelliğine ekliyoruz

foreach(string ekle in ekler){

eposta.Attachments.Add(new Attachment(@ekle)); // ekleri Attachments özelliğine ekle

}

}

try{ // Hata kontrolü

smtp.Send(eposta); // eposta nesnesini smtp.Send fonksiyonu ile gönder

}catch(Exception ex){ // Hata oluştuysa oluşan hatayı ex değişkenine aktar

MessageBox.Show(“Mail gönderilirkene bir hata ile karşılaşıldı: ” + ex.Message); // Hatayı kullanıcıya bildir

}

 

 

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz