【问题标题】:Email not being sent using gmail info未使用 gmail 信息发送电子邮件
【发布时间】:2015-03-12 10:59:51
【问题描述】:

好的,所以我已经尝试对此进行排序大约 3 个小时,但无济于事。我制作了一个简单的联系我们表格。它需要做的就是将消息发送到我的 gmail 帐户。它没有发送任何东西,也没有给出任何错误。我尝试关闭两步验证,但这也无济于事。 我的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: username@gmail.com" 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);
}

任何帮助将不胜感激

【问题讨论】:

  • 检查Port。另外,您在Credentials 中发送的 ID 和密码是否正确
  • 端口是正确的,我仔细检查了ID和密码也是正确的
  • 你可以在这里查看,我收到了我的有效凭据s8.postimg.org/6tey5uk5h/error1.png的邮件
  • 你放什么NetworkCredential("*?????@gmail.com", "??");应该是你的ID和密码。请检查是否正确
  • 给我你的测试邮件ID,我会告诉你它工作得很好

标签: c# asp.net gmail


【解决方案1】:

您需要输入正确的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: username@gmail.com" 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("test@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("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);
        }
    }

希望对您有所帮助。 :)

【讨论】:

  • 只是为了消除混淆,Msg.To.Add()smtp.Credentials = new System.Net.NetworkCredential("YOURGMAILID", "YOURGMAIL PASSWORD"); 中的电子邮件 ID 应该相同吧?
  • 不是必须的,Msg.To.Add 是您要向其发送邮件的属性,smtp.Credentials = new System.Net.NetworkCredential("YOURGMAILID", "YOURGMAIL PASSWORD"); 是要发送邮件的 ID
  • 但即使它们相同,它也应该可以工作,对吧?
  • 是的,如果凭据正确,它将起作用。这不适合你吗??
  • 不,它仍然不是.. 我仔细检查了所有内容。更改了我的帐户设置以接受来自不太安全的应用程序等的登录,但仍然没有向我发送电子邮件
猜你喜欢
  • 1970-01-01
  • 2021-06-17
  • 2018-01-26
  • 2020-07-12
  • 2014-11-30
  • 1970-01-01
  • 2018-02-11
  • 2021-09-11
  • 1970-01-01
相关资源
最近更新 更多