#c# #authentication #networking #server #smtp
#c# #аутентификация #сеть #сервер #smtp
Вопрос:
try
{
MailMessage mail = new MailMessage();
mail.From = new MailAddress(textBox1.Text);
mail.To.Add(textBox1.Text);
SmtpClient SmtpServer = new SmtpClient("smtp.office365.com", 25);
SmtpServer.UseDefaultCredentials = true;
SmtpServer.EnableSsl = true;
SmtpServer.Credentials = new NetworkCredential(textBox1.Text, textBox2.Text);
//SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network;
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
mail.Subject = "Victim " userName;
mail.Body = "Contents.";
SmtpServer.Send(mail);
label5.Text = "WORKING";
}
catch (Exception ex)
{
valid = false;
label5.Text = "INVALID LOGIN";
throw new Exception(ex.Message);
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я ввожу неправильные учетные данные в ‘TextBox1’, я все еще могу отправить электронное письмо через зарегистрированную учетную запись. По-видимому, SMTP-сервер, который настроен в этой сети, не требует аутентификации в том же домене, хотя есть ли способ заставить его проверить, действительно ли используемые мной учетные данные действительны, и использовать их?
Комментарии:
1. «По-видимому, SMTP-сервер, который настроен в этой сети, не требует аутентификации в том же домене» < — Это ваша проблема.
2. Да, хотя у меня нет доступа для настройки этого. Есть ли способ вручную проверить это с помощью кода?
3. ваш вопрос не имеет смысла: вы обращаетесь к SMTP-серверу, который не требует аутентификации. Точка. Вот и все. Вы не можете заставить SMTP-сервер требовать авторизации.
4. Попробуйте прокомментировать
SmtpServer.Credentials
строку кода.5. @ChetanRanpariya Да, все еще отправляет его. Я думаю, это потому, что SMTP — это опция прямой отправки, и я использую порт 25 с соответствующей конечной точкой mx, а также подключен к этому домену. Мой ИТ-администратор посоветовал мне попробовать startTLS.