2015-01-09 4 views
0

Я обдумывал это в течение нескольких дней, и я не могу точно определить, почему мой код не аутентифицируется с сервером smtp gmail. То, что я сделал так, чтобы сделать:SMTP защищенное подключение и аутентификация

  • настроить Gmail, чтобы принять менее безопасные приложения
  • 2 способа проверки выключена
  • использования
  • Captcha ВЫКЛЮЧЕН
  • Iis 6 Smtp
  • сайта закодированного правильно используя asp.net C#
  • порт 587 исходящих и входящих набор, чтобы все

вот с ода

.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net.Mail; 
using System.Net; 


public partial class Contact : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void Btn_Submit_Click(object sender, EventArgs e) 
    { 
     MailMessage mailMessage; 
     SmtpClient smtpClient; 

     try 
     { 
      mailMessage = new MailMessage(); 
      mailMessage.To.Add("[email protected]"); 
      mailMessage.From = new MailAddress("[email protected]"); 
      mailMessage.Subject = "ASP.NET e-mail test"; 
      mailMessage.Body = "Hello world,\n\nThis is an ASP.NET test e-mail!"; 

      smtpClient = new SmtpClient("smtp.gmail.com"); 
      smtpClient.Port = 587; 

      NetworkCredential nc = new NetworkCredential("[email protected]", "Meowqwe789doG"); 

      smtpClient.Credentials = nc; 


      smtpClient.EnableSsl = true; 



      smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
      smtpClient.UseDefaultCredentials = false; 



      smtpClient.Send(mailMessage); 

      //Response.Write("E-mail sent!"); 


     } 
     catch (Exception ex) 
     { 
      //Response.Write("Could not send the e-mail - error: " + ex.Message); 
     } 

    } 



} 

HTML

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true" CodeFile="Contact.aspx.cs" Inherits="Contact" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="title" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="head" Runat="Server"> 
</asp:Content> 
<asp:Content ID="Content3" ContentPlaceHolderID="contentbody" Runat="Server"> 



    <div class="contact"> 
     <div class="contact-heading text-center"> 
      <div class="container"> 
       <div class="row"> 
        <div class="col-md-6"> 
         <h1>Contact Us</h1> 
         <div class="headingpng"> 
          <img src="img/heading.png" /> 
         </div> 
        </div> 
       </div>   
      </div> 
     </div> 
    </div> 
    <div id="contact-form" class="clearfix"> 
     <h4 class="text-center"> 
      Please fill in the contact form below with any questions you may have. 
     </h4> 
     <ul id="errors" class=""> 
      <li id="info"> 
       There were some problems with your form submission: 
      </li> 
     </ul> 
     <p id="success"> 
      Thanks for your message! We will get back to you ASAP! 
     </p> 
     <div> 
      <label for="name">Name: <span class="required">*</span></label> 
      <input type="text" id="name" name="name" value="" placeholder="John Doe" required="required" autofocus="autofocus" /> 
      <asp:TextBox runat="server" ID="Tb_Name" ></asp:TextBox> 

      <label for="email">Email Address: <span class="required">*</span></label> 
      <input type="email" id="email" name="email" value="" placeholder="[email protected]" required="required" /> 

      <label for="telephone">Telephone: </label> 
      <input type="tel" id="telephone" name="telephone" value="" /> 

      <label for="enquiry">Enquiry: </label> 
      <select id="enquiry" name="enquiry"> 
       <option value="general">General</option> 
       <option value="sales">Sales</option> 
       <option value="support">Support</option> 
      </select> 

      <label for="message">Message: <span class="required">*</span></label> 
      <textarea id="message" name="message" placeholder="Your message must be greater than 20 charcters" required="required" data-minlength="20"></textarea> 

      <span id="loading"></span> 
      <%--<input type="submit" value="Submit" id="submit-button" />--%> 
      <asp:Button runat="server" ID="Btn_Submit" Text="Submit" OnClick="Btn_Submit_Click" /> 
      <p id="req-field-desc"><span class="required">*</span> indicates a required field</p> 
     </div> 
</div> 



</asp:Content> 

Как я уже говорил, я искал во всем для исправления, что я придумал в конце концов, что я делая html и C# правильно, все, похоже, работает с линией кода catch (Exception ex), которая затем отправляет мне это

[System.Net.Mail.SmtpException] = {«Для SMTP-сервера требуется безопасное соединение n или клиент не был аутентифицирован. Ответ сервера: 5.5.1 Требуется аутентификация. Узнайте больше на "}

Если у кого есть какие-либо предложения, которые были бы большими

+0

Теперь измените свой gmail passowrd, так как вы позволили миру узнать, как попасть в ваш адрес электронной почты. Если вы отправляете такой код, убедитесь, что вы замаскируете пароль. Сделайте это сейчас, прежде чем пытаться исправить проблему. –

+1

BTW, ваши 'SmtpClient' и' MailMessage' должны быть в 'использовании' блоков. –

+0

Да, это была ошибка новобранец ха-ха, о человек, facepalm идет сюда. Во всяком случае, это фиктивный адрес, поэтому, если кто-то попал туда, ничего не видно. С другой стороны, мне нужно знать, где разместить решение этой проблемы. Мне не удалось заставить его работать, и я хотел бы оставить что-то для всех, кто входит в эту проблему, используя Windows 7. Я нашел что-то, что отлично работает для тех, кто не может отправлять SMTP-запросы в gmail или, где бы то ни было, несмотря на код хорошо. ура – Crebrum

ответ

0

Вам нужно только изменить учетные данные по умолчанию истина

smtpClient.UseDefaultCredentials = true; 

Вот полный код:.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net; 
using System.Net.Mail; 
public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected void Btn_Submit_Click(object sender, EventArgs e) 
    { 
     MailMessage mailMessage; 
     SmtpClient smtpClient; 

     try 
     { 
      mailMessage = new MailMessage(); 
      mailMessage.To.Add("[email protected]"); 
      mailMessage.To.Add("[email protected]"); 
      mailMessage.From = new MailAddress("[email protected]"); 
      mailMessage.Subject = "Change your password"; 
      mailMessage.Body = "Hello Crebrum,\n\nPlease change your password for [email protected]!" + 
       "You posted the password on stack overflow and anyone can access your email now."; 

      smtpClient = new SmtpClient("smtp.gmail.com"); 
      smtpClient.Port = 587; 

      NetworkCredential nc = new NetworkCredential("[email protected]", 
       "{Here is where I masked your password. You are welcome}"); 

      smtpClient.Credentials = nc; 


      smtpClient.EnableSsl = true; 



      smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
      smtpClient.UseDefaultCredentials = true; 



      smtpClient.Send(mailMessage); 

      //Response.Write("E-mail sent!"); 


     } 
     catch (Exception ex) 
     { 
      //Response.Write("Could not send the e-mail - error: " + ex.Message); 
     } 

    } 


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