Press ESC to close

C# ile Kurumsal Yandex Mail Gönderim Problemi

Bugün C# ile bir kurumsal yandex mail hesabından e-posta göndermem gerekti. Kurumsal mailin ne demek olduğunu bilmeyenler için kısaca; kendi alan adınızın mx adreslerini yandex’e yönlendirmek suretiyle mail hizmetini yandex altyapısı ile sağlamanıza olanak tanıyan yandex hizmetinin adıdır.

Sorun şu ki yandex yardım sayfalarında ve internet kaynaklarında yandex mail sunucuları olarak smtp.yandex.com ile 465 portu işaret ediliyor, outlook gibi bir istemciye kurulum yaptığınızda ise bu bilgilerle sorunsuz olarak çalışabiliyorsunuz. System.Net.Mail.SmtpClient ile bağlanmaya çalıştığınızda ise hata alıyorsunuz. Eskiden sorunsuz olarak kullanabildiğimiz smtp.yandex.com ile 587 portu ise hata veriyor ve gönderim yapamıyoruz.

İnternet üzerinde konuyla ilgili bir çözüm bulamadım. Bütün sorular ve cevaplar zaten benim yazdığım koda işaret ediyordu. Sorunun çözümü için yandex hesap ayarları üzerinden uygulama şifresi oluşturmamız, sonrasında da 587 portu ve bu şifre ile sunucuya bağlanmamız gerekiyormuş.

Öncelikle yandex üzerinden bir uygulama şifresi oluşturmak için aşağıdaki adımları uygulayabilirsiniz.

Sonrasında C# tarafındaki kodlarımız ise şu şekilde;

 var _host = "smtp.yandex.com";
 var _port = 587;
 var _defaultCredentials = false;
 var _enableSsl = true;
 var _emailfrom = "[email protected]";//Your yandex email adress
 var _password = "yandexapppassword";//Your yandex app password
 using (var smtpClient = new SmtpClient(_host, _port))
 {
     smtpClient.EnableSsl = _enableSsl;
     smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
     smtpClient.UseDefaultCredentials = _defaultCredentials;
     if (_defaultCredentials == false)
     {
         smtpClient.Credentials = new NetworkCredential(_emailfrom, _password);
     }

     smtpClient.Send(_emailfrom, "[email protected]", "Subject of mail", "Content of mail");
 }

Yukarıdaki kod çalışan kod ama çalıştırana kadar denediğim parametreleri ve aldığım sonuçları aşağıda görebilirsiniz.

HostPortPasswordException
smtp.yandex.com
smtp.yandex.ru
465UserPassAktarma bağlantısından veriler okunamadı: net_io_connectionclosed.
smtp.yandex.com
smtp.yandex.ru
465AppPassIOException: Aktarma bağlantısından veriler okunamadı: net_io_connectionclosed.
smtp.yandex.com
smtp.yandex.ru
587UserPass‘Yanlış komut sırası. Sunucu yanıtı şöyleydi: 5.5.4 Error: send AUTH command first.’
smtp.yandex.com
smtp.yandex.ru
587 AppPassBaşarılı

UserPass: Kullanıcının giriş yaparken kullandığı şifre
AppPass: Mail ayarları kısmından oluşturulan uygulama şifresi

Comments (11)

  • Fatihsays:

    1 Ağustos 2020 at 20:16

    Merhaba,

    Günümü kurtardın, teşekkür ederim : )

    Html formatında email göndermek için aşağıdaki C# kodunu kullanıyorum.

    try
    {
    SmtpClient client = new SmtpClient(“smtp.yandex.com”, 587);
    client.EnableSsl = true;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Credentials = new NetworkCredential(“your-company-email”, “yandex-app-password”);
    MailAddress from = new MailAddress(“your-company-email”, “your-name”);
    MailAddress to = new MailAddress(“to-email-address”);
    MailMessage message = new MailMessage(from, to);

    message.Body = body;
    message.IsBodyHtml = true;
    message.Subject = subject;
    message.SubjectEncoding = System.Text.Encoding.UTF8;
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

    client.Send(message);
    }
    catch (Exception ex)
    {
    throw ex;
    }

  • Tevfik Yörüksays:

    18 Şubat 2021 at 17:17

    Merhaba, uygulama şifresi ile deniyorum ancak halen aynı sorun devam ediyor. Sizin çalışan kodunuzu da denedim sonuç aynı. Kaçırdığım bir nokta var sanırım ama bulamadım. Yardımcı olursanız çok sevinirim

  • Gökhan Sevimsays:

    27 Eylül 2021 at 23:22

    Merhaba,

    Anlatım için teşekkürler. Smtp host bilgisini “smtp.yandex.com.tr” .com.tr uzantısına çekmeden 465 portunu ve doğal olarak SSL/TLS kullanamazsınız. Host bilgisini düzelttikten sonra daha güvenli bir mail sistemi kullanabilirsiniz.

  • Taygun Kocabıyıksays:

    20 Mayıs 2022 at 14:04

    Yaklaşık 1 günüme mal olan sorunun çözümünü sizin makalenizle sağladım.

    Çok teşekkür ederim bu değerli bilgiler için

  • Meliksays:

    26 Ağustos 2022 at 12:00

    hocam iyi günler c# üzerinden mail göndermeye çalışıyorum kod kısmımda bir hata yok ama mailim sisteme düşmüyor sorunu anlamış değilim

  • irfan kocaksays:

    14 Eylül 2022 at 13:01

    Hocam selamlar aynı ayarlarla deniyorum fakat hatayı hala alıyorum.

    System.Net.Mail.SmtpException: ‘Bad sequence of commands. The server response was: 5.5.4 Error: send AUTH command first. 1663149625-oxYh8WmQNe-0PhChLqb’

  • Ahmet Refiksays:

    25 Ekim 2023 at 13:41

    Hocam sen ne mübarek bir insansın. Şu yandex ten mail göndermede bir haftadır uğraşıyordum. Ellerine sağlık 🙂

Gökhan Sevim için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir