C#.Net ile mail gönderirken
1 |
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.1 Client was not authenticated |
gibi bir hata alırsanız. İhtimalen 2 hatadan birisini yapıyorsunuzdur.
Örnek kod bloğu
1 2 3 4 5 6 7 8 9 10 11 12 |
SmtpClient smtpClient = new SmtpClient("mail.domain.com", 587); smtpClient.Credentials = new System.Net.NetworkCredential("user", "sifre"); smtpClient.UseDefaultCredentials = false; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); mail.From = new MailAddress("user@domain.com", "User"); mail.To.Add(new MailAddress("amadertem@gmail.com")); ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; smtpClient.Send(mail); |
Yukaridaki temel bir SMTP ile e-posta gonderim kod blogudur fakat hatalidir. 2 ihtimalden birisi 2. satirdaki kullanıcı adı ve şifre kombinasyonu hatalıdır: “user” değil “user@domain.com” olarak kabul eder çoğu mail sunucusu veya mail / şifre geçersiz, mevcut değil vs…
Diğer ihtimal ise yukarıdaki “hatalı” olan şey
1 |
smtpClient.UseDefaultCredentials = false; |
satırının
1 |
smtpClient.Credentials = new System.Net.NetworkCredential("user", "sifre"); |
satırından sonra geliyor olması. Olması gereken aşağıdaki gibidir:
1 2 3 4 5 6 7 8 9 10 11 12 |
SmtpClient smtpClient = new SmtpClient("mail.domain.com", 587); smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new System.Net.NetworkCredential("user@domain.com", "sifre"); smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); mail.From = new MailAddress("user@domain.com", "User"); mail.To.Add(new MailAddress("amadertem@gmail.com")); ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; smtpClient.Send(mail); |
Benim senaryomda hatayı yukarıdaki 2 farklı ihtimal giderdi (her iki hatayı da yapmışım da *tehe*)
Yukarıda sözü geçen başka bir C#.Net’de SMTP ile ilgili hata alıyorsanız veya hata çözümü biliyorsanız paylaşmanızı isterim çünkü genel bir hata çözümler dizisi arşivciği oluşturmaya çalışıyorum. Microsoft’un sitesinde ya da Stackoverflowdaki bilgiler her zaman riayet edilebilir olmuyor – ki ben 15-20 farklı sitede bu SMTP ile ilgili hata için problem giderimi, yazı, örnek inceledim.
Yasin
Merhaba ben bir sitenin destek kısmına girip gmail ike iletişime geçmek için msj attım bu şekil bir yazı var ne demek istendi anlamadım msjım gittimi yada gitmedi
string “https://email.eu-west-1.amazonaws.com” konulu “SendEmail (659)” yürütme hatası “; AWS HTTP hatası: İstemci hatası:
POST https: //email.eu-west-1. amazonaws.com
bir400 Bad Request
yanıt sonuçlandı: Gönderici InvalidPara (truncated…) InvalidParameterValue (client): Missing final ‘@domain’ – Sender InvalidParameterValue Missing final ‘@domain’ c471eaa9-a79e-11e6-88c1-2111ccd472f4 “