C# mail gönderme işlemi sanılanın aksine çok zor değildir. Eğer istenilirse C# mail gönderme işlemi istenilen saatte/saatlerde otomatik olarak gönderilebilir. Bu yazı ile, hem Devexpress gridview içerisindeki verileri C# html mail gönderme işlemini, hem de istenilen bir metinin nasıl mail atılabileceğinden bahsedeceğim. Öncelikle C# html mail gönderme işlemini gridview üzerinden nasıl yapılacağını anlatacağım.
C# Mail Gönderme işlemini gridview üzerinden html format ile yaparken dikkat edilmesi gerekenler :
- C# mail gönderme işlemi için yazılacak kodlar için öncelikle “System.Net.Mail” kütüphanesi eklenmelidir. (using.System.Net.Mail)
- İhtiyacımız olan kütüphane eklendikten sonra, mail bilgilerine ihtiyacımız olacak;
- Mail sunucu bilgisi,
- Giden port (587),
- Mail adresi ve şifresi.
- Mail bilgilerinin ini dosyasında tutulması ve program.cs içerisinde değişken tanımlanıp formların içerisinde kullanılması size kolaylık sağlayacaktır.
- Devexpress bileşeni olan gridview içerisindeki bilgileri html olarak aktarmak için; gridview1.ExportToHtml(MemoryStream) şeklinde parantezin içerisine değer alır.
- Yukarıdaki kod olmazsa gridview üzerindeki verileri alarak C# html mail gönderme işlemini yapamazsınız, sadece metin olarak mail gönderim işlemi yapılabilir.
Devexpress Gridview üzerindeki verileri C# Html Mail Gönderme Adımları :
- Program.cs altında ihtiyacımız olan değişkenleri tanımlamak ve bu değişkenleri ini dosyasındaki bilgileri okutarak kullanmak bize hayli kolaylık sağlayacaktır.
2. Program.cs in içerisinde değişkenlerimizi tanımladıktan sonra, Bu değişkenlere daha öncesinde ini dosyasına yazdırılmış olan değerlerin atanması gerekli.
Bu dört bilgiyi ini dosyasından okuduktan sonra mail konusu, mail in gideceği adres vb. gibi bilgileri ise mail göndermek için yeni bir form oluşturup, oradaki bilgileri değişkenlere atayarak C# html mail gönderme işlemini rahatlıkla yapabilirsiniz.
3. Bu işlemlerden sonra kodlarımızdaki her şey değişken olacağı için bir problem yaşamayacağız, çünkü kullanıcı kendi mail ayarlarını (mail sunucusu, mail adresi, mail şifresi ve giden portu) yapacak ve mail gönderirken ise kendi yazmış olduğu mail adresine eğer yaptıkları doğruysa yazdığı/grid içerisindeki veriler mail gidecek. Ayrıca yukarıdaki ekran gibi yaparsanız gridview içerisindeki verileri html formatta mail gitmekle kalmayacak mesaj kutucuğuna yazdığınız yazılar mail in gövde kısmında gidecek, dolayısıyla konu kısmını da doldurmak faydalı olacaktır.
4. Mail gönderen kodlar ise aşağıdaki şekilde yazılır :
C# Mail Gönderme İşlemi:
C# Mail Gönderen Kodlar :
SmtpClient smtpClient = new SmtpClient(); NetworkCredential basicCredential = new NetworkCredential(“mail-adresi@domain.com“, “mail-şifresi”); MailMessage message = new MailMessage(); MailAddress fromAddress = new MailAddress(“mail-adresi0@domain.com“); smtpClient.Port = 587; smtpClient.Host = “mail.domain.com“; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = basicCredential; message.From = fromAddress; message.Subject = “your subject”; message.IsBodyHtml = true; message.Body = “<h1>your message body</h1>”; message.To.Add(“gönderilecek-mail-adresi@domain.com“); smtpClient.Send(message);
C# Mail Göndermek İçin Kodlar (Değişkenli) :
Form1 form = (Form1)System.Windows.Forms.Application.OpenForms[“Form1”];
string str = “”;
MemoryStream ms = new MemoryStream();
try
{
form.gridView9.ExportToHtml(ms);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
str = sr.ReadToEnd();
}
finally
{
ms.Close();
}
SmtpClient smtpClient = new SmtpClient();
NetworkCredential basicCredential = new NetworkCredential(Program.mail_adres + “”, Program.mail_sifre + “”);
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress(Program.mail_adres + “”);
smtpClient.Port = Convert.ToInt16(Program.mail_port);
smtpClient.Host = Program.mail_sunucu + “”;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = basicCredential;
message.From = fromAddress;
message.Subject = Program.mail_konu + “”;
message.IsBodyHtml = true;
message.Body = Program.mail_govde + str;
message.To.Add(Program.mail_gonderilecek + “”);
smtpClient.Send(message);
MessageBox.Show(“Mail Başarıyla Gönderildi!”, “Mail Gönderimi”, MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();