2015-03-12 5 views
0

ОК, поэтому я пытался сортировать это около 3 часов, но безрезультатно. Я сделал простую контактную форму. Все, что нужно сделать, это отправить сообщение в мою учетную запись gmail. Это ничего не посылает, и ни одна из них не дает никаких ошибок. Я попытался отключить двухэтапную аутентификацию, но это тоже не помогло. Мой ASPX код:Электронная почта не отправляется с использованием gmail info

<asp:Panel ID="Panel1" runat="server" DefaultButton="btnSubmit"> 
         <p> 
          Please Fill the Following to Send us an E-Mail. We will get back to you ASAP! 
         </p> 
         <p> 
          Your name: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ErrorMessage="*" 
     ControlToValidate="YourName" ValidationGroup="save" /><br /> 
          <asp:TextBox ID="YourName" runat="server" Width="250px" /><br /> 
          Your email address: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" 
     ControlToValidate="YourEmail" ValidationGroup="save" /><br /> 
          <asp:TextBox ID="YourEmail" runat="server" Width="250px" /> 
          <asp:RegularExpressionValidator runat="server" ID="RegularExpressionValidator23" 
           SetFocusOnError="true" Text="Example: [email protected]" ControlToValidate="YourEmail" 
           ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" 
           ValidationGroup="save" ForeColor="Red" /><br /> 
          Subject: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" 
     ControlToValidate="YourSubject" ValidationGroup="save" /><br /> 
          <asp:TextBox ID="YourSubject" runat="server" Width="400px" /><br /> 
          Your Question: 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" 
     ControlToValidate="Comments" ValidationGroup="save" /><br /> 
          <asp:TextBox ID="Comments" runat="server" 
           TextMode="MultiLine" Rows="10" Width="400px" /> 
         </p> 
         <p> 
          <asp:Button ID="btnSubmit" runat="server" Text="Send" ValidationGroup="save" Height="36px" OnClick="btnSubmit_Click" Width="86px" /> 
         </p> 
        </asp:Panel> 

мой C# код:

try 
{ 
    MailMessage Msg = new MailMessage(); 
    // Sender e-mail address. 
    Msg.From = new MailAddress(YourEmail.Text); 
    // Recipient e-mail address. 
    Msg.To.Add("*****@gmail.com"); 
    Msg.Subject = YourSubject.Text; 
    Msg.Body = Comments.Text; 
    // your remote SMTP server IP. 
    SmtpClient smtp = new SmtpClient(); 
    smtp.Host = "smtp.gmail.com"; 
    smtp.Port = 587; 
    smtp.Credentials = new System.Net.NetworkCredential("****@gmail.com", "*********"); 
    smtp.EnableSsl = true; 
    smtp.Send(Msg); 
    //Msg = null; 
    DisplayMessage.Text = "Thanks for Contacting us"; 
    // Clear the textbox valuess 
    YourName.Text = ""; 
    YourSubject.Text = ""; 
    Comments.Text = ""; 
    YourEmail.Text = ""; 
} 
catch (Exception ex) 
{ 
Console.WriteLine("{0} Exception caught.", ex); 
} 

любая помощь будет принята с благодарностью

+0

проверить «Порт». Идентификатор и пароль, которые вы отправляете в «Учетных данных», являются правильными или нет. – BNN

+0

порт прав, я дважды проверял и ID и pwd тоже верны –

+0

Здесь вы можете проверить, я получил почту, поставив свои действительные учетные данные http: //s8.postimg.org/6tey5uk5h/error1.png – BNN

ответ

0

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

Смотрите здесь

Aspx КОД

<asp:Panel ID="Panel1" runat="server" DefaultButton="btnSubmit"> 
     <p> 
      Please Fill the Following to Send us an E-Mail. We will get back to you ASAP! 
     </p> 
     <p> 
      Your name: 
<asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ErrorMessage="*" 
    ControlToValidate="YourName" ValidationGroup="save" /><br /> 
      <asp:TextBox ID="YourName" runat="server" Width="250px" /><br /> 
      Your email address: 
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" 
    ControlToValidate="YourEmail" ValidationGroup="save" /><br /> 
      <asp:TextBox ID="YourEmail" runat="server" Width="250px" /> 
      <asp:RegularExpressionValidator runat="server" ID="RegularExpressionValidator23" 
       SetFocusOnError="true" Text="Example: [email protected]" ControlToValidate="YourEmail" 
       ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" 
       ValidationGroup="save" ForeColor="Red" /><br /> 
      Subject: 
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" 
    ControlToValidate="YourSubject" ValidationGroup="save" /><br /> 
      <asp:TextBox ID="YourSubject" runat="server" Width="400px" /><br /> 
      Your Question: 
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" 
    ControlToValidate="Comments" ValidationGroup="save" /><br /> 
      <asp:TextBox ID="Comments" runat="server" 
       TextMode="MultiLine" Rows="10" Width="400px" /> 
     </p> 
     <p> 
      <asp:Button ID="btnSubmit" runat="server" Text="Send" ValidationGroup="save" Height="36px" OnClick="btnSubmit_Click" Width="86px" /> 
     </p> 
    </asp:Panel> 

CS КОД

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      MailMessage Msg = new MailMessage(); 
      // Sender e-mail address. 
      Msg.From = new MailAddress(YourEmail.Text); 
      // Recipient e-mail address. 
      Msg.To.Add("[email protected]"); 
      Msg.Subject = YourSubject.Text; 
      Msg.Body = Comments.Text; 
      // your remote SMTP server IP. 
      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 587; 
      smtp.Credentials = new System.Net.NetworkCredential("YOURGMAILID", "YOURGMAIL PASSWORD"); // IT SHOULD BE CORRECT TO WORK 
      smtp.EnableSsl = true; 
      smtp.Send(Msg); 
      //Msg = null; 
      // DisplayMessage.Text = "Thanks for Contacting us"; 
      // Clear the textbox valuess 
      YourName.Text = ""; 
      YourSubject.Text = ""; 
      Comments.Text = ""; 
      YourEmail.Text = ""; 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine("{0} Exception caught.", ex); 
     } 
    } 

надеюсь, что это помогает. :)

+0

просто для того, чтобы устранить путаницу, идентификатор электронной почты должен быть таким же в «Msg.To.Add()» и «smtp.Credentials = новый System.Net.NetworkCredential (« YOURGMAILID »,« ПАРОЛЬ ВАШЕГО ПОЛЬЗОВАТЕЛЯ »),« правильно? –

+0

Не нужно, «Msg.To.Add» - это атрибут, которому вы отправляете почту, и «smtp.Credentials = новый System.Net.NetworkCredential (« YOURGMAILID »,« ПАРОЛЬ ВАШЕГО ПОЛЬЗОВАТЕЛЯ »); какая почта будет отправлена ​​ – BNN

+0

, но она должна работать, даже если они такие же, не так ли? –

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