Gereksinimlerden birinin bir ASP.NET uygulamasını yeniden yazmak olduğu bir proje üzerinde çalışıyorum. Eski ASP.NET uygulaması .NET Framework 1.1'e dayanıyordu. Yeni ASP.NET uygulaması .NET Framework 3.5 tabanlı.ASP.NET - SmtpClient - Uzak sunucuya bağlanılamıyor
Eski web uygulamasındaki işlevlerden biri e-posta gönderme özelliğiydi. Eski kod System.Web.Mail.SmtpMail
sınıfını kullanırken yeni web uygulaması System.Net.Mail.SmtpClient
sınıfını kullanıyor.
Bunu geliştirme sunucularında test ederken, her şey iyi çalıştı. Bununla birlikte, yazılımımızı test eden iki beta müşterimiz var ve her ikisi de yeni web uygulamasında e-posta gönderirken sorunla karşılaşıyor. aşağıdaki gibi
belirli istisnadır:
uzak sunucuya bağlanılamıyor---> System.Net.Sockets.SocketException: Hedef makine etkin
olarak reddettiğinden bağlantı yapılamadı
Hem eski hem de yeni ASP.NET uygulaması aynı sunucuda (Windows Server 2003) bulunmaktadır. Her ikisi de aynı Exchange posta sunucusunu kullanıyor. Neden eski ASP.NET uygulamasının başarıyla e-posta gönderebiliyor, ancak yeni olanı yapamıyor?
Eski koda baktım ve herhangi bir kimlik doğrulama şekli kullanmadı, yalnızca gönderenin e-posta adresini, alıcının e-posta adresini, konuyu, gövdeyi ve sunucuyu belirtti ve iletiyi gönderdi. Ben de SmtpClient sınıfını kullandığımdaki tek farkla aynı şeyi yeni kodda yaptım.
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.To.Add(messageTo);
mail.From = new MailAddress(messageFrom);
mail.Subject = messageSubject;
mail.Body = messageBody;
SmtpClient client = new SmtpClient();
client.Host = smtpServer;
client.Send(mail);
Exchange günlüklerinde bağlantıyı reddeden bir şey var mı? – David
Onlara erişemiyorum ve beta istemcinin bunlara da erişebileceğini sanmıyorum. Yine, bu bizim için iyi çalıştı. Oldukça basit bir işlevsellik. – Chris
Sunucuyu nasıl belirlersiniz? SmptClient'in yapıcısında veya web.config dosyasında? bazı kod gönderebilir misin? – onof