Как отправить электронное письмо из C #, не раскрывая свой пароль? - PullRequest
2 голосов
/ 03 января 2011

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

MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

mail.From = new MailAddress("Contact@pandorafreed.com");
mail.To.Add("myemail@gmail.com");
mail.Subject = "Pandora Free-D Message";
mail.Body = "Name: " + C.NameBox.Text + "\n" + "Email: " + C.emailBox.Text + "\n" + C.Message.Text;

SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
SmtpServer.EnableSsl = true;

SmtpServer.Send(mail);

+++++ EDIT +++++

хммм ... будет работать localhost?Кто-нибудь знает?

Ответы [ 3 ]

9 голосов
/ 03 января 2011

Нет, если ваш почтовый сервер требует аутентификации.Программа должна знать пароль для отправки почты, и если эта программа работает на компьютере, которому вы не доверяете, вы можете предположить, что пароль будет быстро взломан.

Вы должны рассмотреть альтернативный метод,например, отправка почты через веб-службу или HTTP-вызов на сервер под вашим контролем, где вы можете проверить сообщение и затем отправить его на почтовый сервер.

1 голос
/ 03 января 2011

Зачем другим людям использовать вашу учетную запись для отправки электронной почты? Позвольте пользователю использовать его / ее собственный почтовый сервер и аутентификацию. Позвольте пользователю ввести эти значения при установке вашей программы и сохранить ее в файле конфигурации.

1 голос
/ 03 января 2011

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

...