Отправка электронной почты с SMTP-сервера без необходимости ввода пароля - PullRequest
2 голосов
/ 20 сентября 2011

У нас есть приложение, которое предлагает пользователю войти в систему, используя его имя пользователя и пароль ldap, из которого я могу получить электронную почту пользователя, но не пароль электронной почты. Моя цель - отправлять электронную почту с почты этого пользователя без необходимости запрашивать пользователя для его пароля электронной почты.

Я использую следующий код для отправки электронной почты

NetworkCredential loginInfo = new NetworkCredential("fromemail@mydomain.com","mypassword");
MailMessage msg = new MailMessage();
sg.From = new MailAddress("fromemail.lb@mydomain.com");
msg.To.Add(new MailAddress("toemail.lb@mydomain.com"));
msg.Subject = "test";

SmtpClient client = new SmtpClient("smtp.mydomain.com");
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Credentials = loginInfo;
client.Send(msg);

IS можно отправить письмо без пароля? что-то вроде подделки электронной почты, если не возможно, возможно ли ее подделать, например, отправлять все электронные письма из одного электронного письма, но при этом выглядеть так, как если бы оно было получено из электронной почты зарегистрированного пользователя?

Спасибо

1 Ответ

5 голосов
/ 20 сентября 2011

Все зависит от SMTP-сервера.Когда вы настраиваете SMTP-сервер, вы решаете, какие учетные данные он принимает и позволяет ли он выдавать себя за того, кем вы не являетесь.Многие веб-серверы имеют встроенный SMTP-сервер на локальном хосте, который обычно не требует никаких учетных данных.Некоторые интернет-провайдеры предоставляют SMTP-сервер, который позволяет отправлять электронную почту от других людей.Если ваш SMTP-сервер не требует аутентификации, вы можете просто удалить 3 строки кода, которые настраивают безопасность для клиента SMTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...