Отправить письмо без использования сетевых учетных данных - PullRequest
0 голосов
/ 16 марта 2011

Я хочу отправлять электронную почту, используя SMTP-клиент в C #.В настоящее время я использую этот код:

System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add("receiver");
message.Subject = "";
message.From = new System.Net.Mail.MailAddress("sender");
message.Body = "This is a test mail";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com");
smtp.Credentials = new System.Net.NetworkCredential("username", "password");
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.Send(message);

Но я хочу отправить письмо без имени пользователя и пароля, просто указав адрес отправителя.Возможно ли это в C #?Это возможно с любого SMTP-сервера (не Google).Я имею в виду вход на сервер анонимно и просто укажите свой почтовый адрес.

Ответы [ 4 ]

3 голосов
/ 16 марта 2011

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

1 голос
/ 16 марта 2011

Сервер SMTP в IIS допускает это по умолчанию, если ваше приложение находится на том же сервере, что и IIS.

1 голос
/ 16 марта 2011

Это зависит от вашего сервера.В вашем коде вы используете Gmail, и Gmail требует этого.

Вы можете настроить собственный SMTP-сервер.

0 голосов
/ 16 марта 2011

В конце концов вам придется отправлять учетные данные, если сервер требует их.

Вы можете отправить учетные данные текущего контекста безопасности, если это то, что вы ищете.Смотри: http://msdn.microsoft.com/en-us/library/system.net.credentialcache.defaultnetworkcredentials.aspx.

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