2016-10-08 3 views
-4

Итак, я смотрю, что у меня есть контактная форма на моем сайте, где человек может набрать сообщение и отправить его, при этом mesage отправится в мой почтовый ящик.Почему для создания контактных форм требуется пароль?

Но каждый раз, когда я вижу их в Интернете Ill увидеть это:

System.Net.NetworkCredential("[email protected]", "YourPassword"); 

Почему я должен предоставить свой пароль? Когда вы отправляете кому-то регулярное электронное письмо, вам не нужен ИХ пароль.

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

Кроме того, что, если это для большой компании? Имеет ли ebay свой пароль в виде обычного текста? Я сомневаюсь. Как это делают другие люди?

+0

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

ответ

1

Вы абсолютно не хотите, чтобы пользовательский пароль.

Но для вашей контактной формы, чтобы иметь возможность отправлять почту, ее необходимо отправить действительным почтовым клиентом. Скажем, например, вы хотите использовать сервер gmail для своей почты, вам необходимо предоставить свои учетные данные.

Что касается второй части вашего вопроса, пожалуйста, не храните этот простой текст в коде. Вы можете легко Acces те из app.config/web.config

(например, см: Embed credentials for webclient in C# Console Application app.config?)

+0

Спасибо. Я отмечаю ваш ответ, потому что вы ответили ему быстрее и показали мне, как переместить текст в web.config. – user2903379

0

Это потому, что у вас есть свой собственный SMTP реле и собственные полномочия.

Поэтому при настройке почтовой программы на вашей стороне вам необходимо указать ответ на адрес электронной почты.

Ниже приведен рабочий пример того, как сделать это

var m = new MailMessage { Subject = txtSubject.Text, IsBodyHtml = true, Body = emailOpeningLine + txtMessage.Text }; 

      try 
      { 
       m.To.Add(new MailAddress("to"); 
       m.From = new MailAddress("senders email address"); 
       m.ReplyToList.Add("senders email address"); 
       foreach (var attachment in Attactments) 
       { 
        m.Attachments.Add(new Attachment(attachment)); 
       } 
       client.Send(m); 
       m.To.Clear(); 
       m.Attachments.Clear(); 

      } 

      catch (SmtpException esException) 
      { 

      } 
      catch (Exception ex) 
      { 


      } 

Re другие ваши вопросы, вы можете хранить пароли в базе данных, но помните их шифрования.

+0

спасибо. Я попробую ваш пример завтра, потому что я даю ему перерыв на данный момент. Я дам вам знать, если это сработало – user2903379

+0

Не беспокойтесь :) m –

Смежные вопросы