VB. NET E-Mail Gönderme

1 2
14/02/2016, 04:34

emir ustaoğlu

Merhabalar;
uzun bir aradan sonra tekrardan visual basic .net ile ilgilenmeye başladım sizlerle yapmış olduğum e-mail gönderme çalışmasını paylaşmak ve yorumlarınızı almak istiyorum.
çalışmam internette gördüğüm bir çok çalışmaya göre kullanıcıya daha fazla seçenek sunmaktadır, bunlardan bazıları her seferinde farklı bir e-mail kullana bilme, gmail,hotmail,yahoo veya özel mail sağlayıcılarını kullana bilme,ekli dosya ile mail ata bilme ve maile imza ekleye bilme gibi. Belirlemiş olduğunuz imza formda setting dosyası kullanılarak kayıtlı olarak tutulmaktadır. Bu sayede bir kere belirledikten sonra sadece uygulamanın alt tarafında bulunan imza ekleme kutusunu seçmek yeterli olmaktadır. E-Mail göndermek için kullanmış olduğum kod;
 Using mail As MailMessage = New MailMessage
            mail.Subject = (mailkonu.Text) 'E-mail Konusu
            mail.To.Add(mailalıcı.Text) 'E-Mail Alıcısı
            mail.From = New MailAddress(gondmail.Text) 'E-Mail de görünecek isim. Buraya sizin e-mail adresinizi yazdırıyoruz. İsim yazdığımızda kabul etmemekte ve hata vermektedir.
            mail.Body = (mailmesaj.Text) 'E-Mail Mesajı
            mail.Attachments.Add(New Attachment(eklidosya.Text)) 'Burası E-Maile Ek dosya olacaksa eğer dosya göndermek istemiyorsak bu satırı silmemiz gerekiyor. Yoksa hata verecektir.
            mail.IsBodyHtml = (htmlbilgi.Text) 'E-Mail Metin Biçimi Html İçin True / Düz Metin İçin  False
            'SMTP Sunucu Ayarları
            Using smtp As New SmtpClient(smtpsunucu.Text)
                smtp.EnableSsl = (ssl.Text) 'SSL Kullanım Bilgisi/ Kullanılacaksa True / Değilse False
                smtp.Credentials = New System.Net.NetworkCredential(gondmail.Text, gondmailsifre.Text) 'E-Mail Gönderilirken Kullanılacak Mail Adresi / Sabit değer için ("deneme@deneme.com, 123456") şeklinde yazınız.
                smtp.Port = (smtpport.Text) 'SMTP Portu Gmail İçin 587
                smtp.Send(mail) 'Mail Gönder
            End Using
        End Using
        If MsgBox("Mail Başarıyla Gönderilmiştir.", vbInformation + vbOKOnly, "Bilgi") = vbOK Then 'Mail Gönderme Başarılı İse Bilgi Mesajı Veriyor.
            Call mailgonderildi() 'Mail gönderildikten sonra formdaki Mail İçeriği alanını temizletiyoruz.
        End If
Kodların tüm açıklamaları içeriğinde mevcuttur.

Mail gönderildikten sonra mail içeriği alanındaki bilgileri silme;
mailalıcı.Text = ""
        mailkonu.Text = ""
        mailmesaj.Text = ""
        eklidosya.Text = ""
        CheckBox1.Checked = False

Ekte sadece uygulamanın exe hali mevcuttur. Çalışmanın içinde bir kaç farklı uygulama olduğu için açık halini şuan veremiyorum ancak en kıssa zamanda açık halini de konuya ekleyeceğim.

Bu çalışma vb.net te şuana kadar yapmış olduğum en kapsamlı çalışma diye bilirim Çalışmam çok kapsamlı değil biliyorum ancak olumlu/olumsuz indiren herkesin yorum yapmasını rica ederim. Teşekkürler
Saygılarımla

##Ek Dosya Güncellenmiştir. Çalışmanın Tam Hali Eklenmiştir.

[attachment=24444]
14/02/2016, 06:00

ozanakkaya

Paylaşım için teşekkürler. Elinize sağlık.
14/02/2016, 10:04

C*e*l*o*y*c*e

Paylaşım için teşekkürler,güzel olmuş,devamını bekleriz.+ Rep
14/02/2016, 10:34

emir ustaoğlu

Sayın ozanakkaya ve Sayın C*e*l*o*y*c*e;

Değerli yorumlarınız için teşekkür ederim.
Access konusunda sizlerin sayesinde çok şey öğrendim ve vb.net te birşeyler yaparken bu bilgiler çok işime yaradı. zamanında çok aldık şimdide verme zamanı Yorumlarınız için tekrar teşekkür ederim.
Saygılar.
27/02/2016, 00:57

vbasic



hocam bu hatayı nasıl çözebilirim ? smtp send satırında veriyor bu hatayı çözemedim bir türlü.
27/02/2016, 11:03

emir ustaoğlu

Sayın vbasic;

Resimde görünen hata sunucuyu bulamadığını belirtiyor. Vermiş olduğun sunucu adresi veya port hatalı olabilir.
Örneğin Gmail için "mail.gmail.com" portu da "587"
veya SSL gerektiren bir sunucuya SSL kullanmadan bağlanmaya çalıştığında da bu hatayı verebilir, aynı şekilde SSL gerektirmeyen bir sunucuya SSL ile bağlandığında da olabiliyor.
Çalışmanı ekleye bilirsen veya kullanmış olduğun kodu daha iyi yardımcı olabilirim.

Saygılar.
1 2