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.
Host | Port | Password | Exception |
smtp.yandex.com smtp.yandex.ru | 465 | UserPass | Aktarma bağlantısından veriler okunamadı: net_io_connectionclosed. |
smtp.yandex.com smtp.yandex.ru | 465 | AppPass | IOException: Aktarma bağlantısından veriler okunamadı: net_io_connectionclosed. |
smtp.yandex.com smtp.yandex.ru | 587 | UserPass | ‘Yanlış komut sırası. Sunucu yanıtı şöyleydi: 5.5.4 Error: send AUTH command first.’ |
smtp.yandex.com smtp.yandex.ru | 587 | AppPass | Baş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:16Merhaba,
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;
}
Salihsays:
25 Ağustos 2020 at 17:09Hayat kurtarıcı bir paylaşım olmuş. Çok teşekkür ederim Mehmet Bey.
Tevfik Yörüksays:
18 Şubat 2021 at 17:17Merhaba, 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:22Merhaba,
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.
YAKUP ULUTAŞsays:
24 Ağustos 2023 at 14:18Bak burada kimler varmış 🙂
Recepsays:
6 Ekim 2021 at 15:41Hocam çok teşekkürler. Sağolasın…
Taygun Kocabıyıksays:
20 Mayıs 2022 at 14:04Yaklaşı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:00hocam 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:01Hocam 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’
ertugrulakdagsays:
30 Eylül 2022 at 14:30https://yandex.com/support/mail/mail-clients/others.html adresinden
1. adımda pop desteğini açmamız gerekiyor.
Makale için teşekkürler.
Step 1. Configure your mailbox
Open the “Email clients” section in Yandex.Mail settings.
Select the following options: From the imap.yandex.com server via IMAP and App passwords and OAuth tokens.
Save changes.
Ahmet Refiksays:
25 Ekim 2023 at 13:41Hocam sen ne mübarek bir insansın. Şu yandex ten mail göndermede bir haftadır uğraşıyordum. Ellerine sağlık 🙂