🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / Gmail ile mail gönderme 16 haneli uygulama şifre oluşturma

1-) C# RMOS - Gmail ile mail gönderme 16 haneli uygulama şifre oluşturma

 

yapılış videosu : https://youtu.be/jwbLw4sMHcA

 

bunu unutma
 ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

         ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

 

Açıklama : Gmail ile mail göndermek istiyorsanız ; Gmail iki doğrulamayı açtıktan sonra 16 haneli uygulama şifresi oluşturmanız gerekiyor. Ardından yapmanız gereken sadece mail şifresi yerine uygulama şifrenizi yazmanız. basit c# kodu aşağıdadır.

 

 private void button1_Click(object sender, EventArgs e)

        {

            var fromAddress = new MailAddress("kendimailim@gmail.com", "From Name");

            var toAddress = new MailAddress("gonderilecekmail@gmail.com", "To Name");

            const string fromPassword = "16haneliŞifre";

            const string subject = "Subject";

            const string body = "Body";

 

            var smtp = new SmtpClient

            {

                Host = "smtp.gmail.com",

                Port = 587,

                EnableSsl = true,

                DeliveryMethod = SmtpDeliveryMethod.Network,

                UseDefaultCredentials = true,

                Credentials = new NetworkCredential(fromAddress.Address, fromPassword)

            };

            using (var message = new MailMessage(fromAddress, toAddress)

            {

                Subject = subject,

                Body = body

            })

            {

                smtp.Send(message);

            }

        }

 

uygulama şifresi oluşturma linki : https://accounts.google.com/signin/v2/challenge/pwd?continue=https%3A%2F%2Fmyaccount.google.com%2Fapppasswords&service=accountsettings&osid=1&rart=ANgoxccPTgHWiIJTuBxIIhEbpHWCdSVjrov4k0WWA7w70Q61StH7O6u7chz8QGBeEeXrbGf-bgg9uApvsUGwNjIPOB-I0DrGgQ&TL=AM3QAYbcMkECkxlLu0BrBb8ymLXUopYGiuxElNVxw4o9j5vDeUuE6gdBvwHXssz5&flowName=GlifWebSignIn&cid=1&flowEntry=ServiceLogin

 

1. DOSYA GÖNDERMEK İÇİN

 

 public void sendMessage(string fileName)

        {

            var fromAddress = new MailAddress("kendimailim@gmail.com", "From Name");

            var toAddress = new MailAddress("gonderilecekmail@gmail.com", "To Name");

            const string fromPassword = "16haneliŞifre";

            const string subject = "Subject";

            const string body = "Body";

 

            var smtp = new SmtpClient

            {

                Host = "smtp.gmail.com",

                Port = 587,

                EnableSsl = true,

                DeliveryMethod = SmtpDeliveryMethod.Network,

                UseDefaultCredentials = true,

                Credentials = new NetworkCredential(fromAddress.Address, fromPassword)

            };

 

            var message = new MailMessage(fromAddress, toAddress);

            message.Subject = subject;

            message.Body = body;

 

            message.Attachments.Add(new Attachment(fileName));

 

 

            smtp.Send(message);

        }

 

 

 

 

 

önceki stilde buraya kapatıyorduk ama artık bu yok google kaldırmış : https://www.google.com/settings/security/lesssecureapps

 

 

 

 

BU HATAYI VERİRSE YUKARIDAKİ İŞLEMLERİ UYGULADIK ÇÖZÜLDÜ

 

SMTP sunucusu güvenli bir bağlantı gerektiriyor veya istemcinin kimliği doğrulanmadı.

Sunucu yanıtı şöyleydi: 5.7.0

Authentication Required. Learn more at

 

kaynak : https://stackoverflow.com/questions/18503333/the-smtp-server-requires-a-secure-connection-or-the-client-was-not-authenticated

 

 

 

2. ÖZEL FİRMA MAİLLERİ İÇİN GÖNDERİM [HOST DEĞİŞ VE TLS2 yaz]

 

 

 public void sendMailOzel(string gonderilecekMail, string baslik, string aciklama)

 {

     try

     {

         string mailroot = ayarlar.getAyarlar(SabitAyarlarEnums.mailRoot);

         var fromAddress = new MailAddress(mailroot, "Rmos Kalite");

         var toAddress = new MailAddress(gonderilecekMail, "Rmos Kalite Kullanıcısı");

         string fromPassword = ayarlar.getAyarlar(SabitAyarlarEnums.mailRootSifre);

         string subject = baslik;

         string body = aciklama;

 

         ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

         ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

 

         var smtp = new SmtpClient

         {

             Host = "mail.firmaismi.com",

             //Host = "smtp.gmail.com",

             Port = 587,

             EnableSsl = true,

             DeliveryMethod = SmtpDeliveryMethod.Network,

             UseDefaultCredentials = false,

             Credentials = new NetworkCredential(fromAddress.Address, fromPassword)

         };

         using (var message = new MailMessage(fromAddress, toAddress)

         {

             Subject = subject,

             Body = body

         })

         {

             smtp.Send(message);

         }

     }

     catch (Exception ex)

     {

 

     }

 }

 

 

 

 

 

not bu kodu eklersen enablessl true yapabilirsin

 

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

 

 

veyta

 

ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) =>

{

    return cert.Subject.Contains("mail.example.com"); // Sertifika konusunu (Subject) kontrol eder

};

 

 2025 Ocak 29 Çarşamba
 2,729