2017-01-10 7 views
0

Я пытаюсь создать страницу «Связаться с нами» с помощью ASP.NET и C#.Как использовать форму «Связаться с нами» для отправки электронной почты, когда вы не знаете их учетные данные/пароль?

Вот мой код, за кнопкой «Отправить»:

try 
    { 
     if (Page.IsValid) 
     { 



      MailMessage mailMessage = new MailMessage(); 
      mailMessage.From = new MailAddress("[email protected]"); 
      mailMessage.To.Add("[email protected]"); //can have multiple here 
      mailMessage.Subject = txtSubject.Text; 
      mailMessage.Body = "<b>Sender Name:</b>" + txtName.Text + "<br/>" 
       + "<b>Sender Email:</b>" + txtEmail.Text + "<br/>" 
       + "<b>Comments:</b>" + txtComments.Text; 

      //for the HTML tags mentioned in the body above 
      mailMessage.IsBodyHtml = true; 


      //IN THE TUTORIAL, HE IS USING GMAIL'S SMTP SERVER: 
      SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 587); 
      smtpClient.EnableSsl = true; 
      smtpClient.Credentials = 
       new System.Net.NetworkCredential("[email protected]", "PASSWORD"); 
      smtpClient.Send(mailMessage); 

      Label1.Text = "Thank you for contacting us"; 
      Label1.ForeColor = System.Drawing.Color.Blue; 
      txtName.Enabled = false; 
      txtEmail.Enabled = false; 
      txtComments.Enabled = false; 
      txtSubject.Enabled = false; 
      Button1.Enabled = false; 
     } 


    } 
    catch (Exception ex) 
    { 
     // Log - Event Viewer or table 
     Label1.ForeColor = System.Drawing.Color.Red; 
     Label1.Text = "There is an unknown problem. Please try later"; 

    } 

В учебнике, который я затем, вам нужно assignthe электронной & пароль отправителя к smtpClient.Credentials.

Есть ли способ отправить это электронное письмо без необходимости знать пароль отправителя?

+0

Вы пробовали с неправильным паролем? надеюсь, что это сработает. – Vijay

+0

Вы пробовали использовать учетные данные по умолчанию, только чтобы получить учебник? Подробнее см. Пример на https://msdn.microsoft.com/en-us/library/swas0fwc(v=vs.110).aspx. – swatsonpicken

+1

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

ответ

0

Обычно для получения электронной почты через SMTP-сервер требуется определенная форма аутентификации для обеспечения безопасности и/или квоты. Если вы абсолютно должны отправлять и отправлять по электронной почте без проверки подлинности, есть много серверов проверки подлинности без аутентификации, которые готовы отправить вам электронное письмо.

+0

Я думал о добавлении другого текстового поля, где пользователь может ввести свой пароль для отправки электронной почты, но они, скорее всего, не захотят этого делать, правильно? Возможно, сохранение функциональности как есть, было бы лучшим – Sweg

+1

@Sweg Я думаю, что вы вводите в заблуждение термины «отправитель» и «получатель» здесь. Человек, заполняющий форму «Связаться с нами», не является «отправителем». Отправителем является только любая учетная запись электронной почты, которая разрешает отправлять почту через SMTP-сервер. Обычно веб-приложения имеют настройку учетной записи службы электронной почты SMTP где-то, что они используют для отправки писем. – chambo

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

  • Нет связанных вопросов^_^