Asp.net Can';不要从我的网站发送电子邮件

Asp.net Can';不要从我的网站发送电子邮件,asp.net,.net,email,gmail,system.net.mail,Asp.net,.net,Email,Gmail,System.net.mail,我现在的处境很奇怪。当我从localhost发送电子邮件时,它工作正常,但是当我将页面上传到服务器并尝试发送电子邮件时,我得到以下错误 SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证 我在标签中显示错误消息用于测试,尝试也放错了位置。我知道,我稍后会设置它 我使用的代码是 if (Page.IsValid) { try { StringBuilder message = new StringBu

我现在的处境很奇怪。当我从localhost发送电子邮件时,它工作正常,但是当我将页面上传到服务器并尝试发送电子邮件时,我得到以下错误

SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证

我在标签中显示错误消息用于测试,尝试也放错了位置。我知道,我稍后会设置它

我使用的代码是

 if (Page.IsValid)
    {
try
            {
            StringBuilder message = new StringBuilder();
            message.Append("Hello My Name is ");
            message.Append(txtName.Text);
            message.AppendLine();
            message.AppendLine("My Contact Number " + txtContactNumber.Text.ToString());
            message.AppendLine();
            message.AppendLine();
            message.AppendLine("My Email Id Is " + txtFromEmailAddress.Text.ToString());
            message.AppendLine();
            message.Append(txtEmailBody.Text);


        MailMessage mailMessage = new MailMessage("xxx@gmail.com", "yyy@gmail.com");
        mailMessage.Subject = "New Client Query";
        mailMessage.Body = message.ToString();

        SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", 25);
        //smtpClient.UseDefaultCredentials = true;
        smtpClient.Credentials = new System.Net.NetworkCredential()
        {
            UserName = "xxx@gmail.com",
            Password = "password"
        };
        smtpClient.EnableSsl = true;

            smtpClient.Send(mailMessage);


        txtContactNumber.Text = "";
        txtFromEmailAddress.Text = "";
        txtName.Text = "";
        txtEmailBody.Text = "";
        lblEmailStatus.Text = "Email Sent Successfully.";
        lblEmailStatus.ForeColor = System.Drawing.Color.Yellow; 
        }
        catch(Exception ex)
        {
            lblEmailStatus.Text = ex.Message + " <br> " + ex.Source;
        }
    }
    else
    {

        lblEmailStatus.Text = "Error!   Email Not Sent ";
        lblEmailStatus.ForeColor = System.Drawing.Color.Yellow;
    }
if(Page.IsValid)
{
尝试
{
StringBuilder消息=新建StringBuilder();
message.Append(“你好,我的名字是”);
message.Append(txtName.Text);
message.AppendLine();
message.AppendLine(“我的联系人号码”+txtContactNumber.Text.ToString());
message.AppendLine();
message.AppendLine();
message.AppendLine(“我的电子邮件Id是”+txtFromEmailAddress.Text.ToString());
message.AppendLine();
message.Append(txtEmailBody.Text);
MailMessage MailMessage=新的MailMessage(“xxx@gmail.com", "yyy@gmail.com");
mailMessage.Subject=“新客户查询”;
mailMessage.Body=message.ToString();
SmtpClient SmtpClient=新的SmtpClient(“smtp.gmail.com”,25);
//smtpClient.UseDefaultCredentials=true;
smtpClient.Credentials=新系统.Net.NetworkCredential()
{
用户名=”xxx@gmail.com",
Password=“Password”
};
smtpClient.EnableSsl=true;
smtpClient.Send(mailMessage);
txtContactNumber.Text=“”;
txtFromEmailAddress.Text=“”;
txtName.Text=“”;
txtEmailBody.Text=“”;
lblEmailStatus.Text=“电子邮件已成功发送。”;
lblEmailStatus.ForeColor=System.Drawing.Color.Yellow;
}
捕获(例外情况除外)
{
lblEmailStatus.Text=ex.Message+“
”+ex.Source; } } 其他的 { lblEmailStatus.Text=“错误!未发送电子邮件”; lblEmailStatus.ForeColor=System.Drawing.Color.Yellow; }
我在谷歌上搜索了几个小时,也查看了这个网站上的链接,但我还是搞不懂

现在,如果有任何人有任何解决方案/提示,我请求你们在这里。

基于此,端口应该是587,而不是25。我发现了一些其他的问题,这些问题似乎是相关的

试试这个

    public string SendEmailTest(String EmailMessage, String FromMail, String MailPassword, String MailServer, String To, String CC, String BCC, String DisplayName, String Subject, String Attachment)
    {
        try
        {
            SmtpClient smtpClient = new SmtpClient();

            MailMessage message = new MailMessage();

            MailAddress fromAddress;

            fromAddress = new MailAddress(FromMail);

            smtpClient.Host = MailServer;
            smtpClient.Port = 25;

            System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(FromMail, MailPassword);
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = SMTPUserInfo;

            message.From = fromAddress;

            message.To.Add(new MailAddress(To, DisplayName));
            if (CC != "")
                message.CC.Add(new MailAddress(CC, DisplayName));
            if (BCC != "")
                message.Bcc.Add(new MailAddress(BCC, DisplayName));

            message.Subject = Subject;

            message.IsBodyHtml = true;
            message.Body = EmailMessage;

            if (Attachment != "")
                message.Attachments.Add(new Attachment(Attachment));

            message.Priority = MailPriority.High;

            smtpClient.Send(message);
            return "SendEmail";
        }
        catch (Exception ex)
        {
            return "Email :" + ex;
        }

    }

我终于明白了原因


我发送电子邮件的电子邮件几天前被黑客入侵了,出于安全原因,谷歌团队将我的电子邮件标记为不安全邮件。我更改了电子邮件地址,工作正常。谢谢大家。

尝试回答中给出的代码。您好,大卫·内格罗,谢谢您的回复。将端口更改为587后,我得到以下信息。“请求类型为'System.Net.Mail.SmtpPermission,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089'的权限失败。
    public string SendEmailTest(String EmailMessage, String FromMail, String MailPassword, String MailServer, String To, String CC, String BCC, String DisplayName, String Subject, String Attachment)
    {
        try
        {
            SmtpClient smtpClient = new SmtpClient();

            MailMessage message = new MailMessage();

            MailAddress fromAddress;

            fromAddress = new MailAddress(FromMail);

            smtpClient.Host = MailServer;
            smtpClient.Port = 25;

            System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(FromMail, MailPassword);
            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = SMTPUserInfo;

            message.From = fromAddress;

            message.To.Add(new MailAddress(To, DisplayName));
            if (CC != "")
                message.CC.Add(new MailAddress(CC, DisplayName));
            if (BCC != "")
                message.Bcc.Add(new MailAddress(BCC, DisplayName));

            message.Subject = Subject;

            message.IsBodyHtml = true;
            message.Body = EmailMessage;

            if (Attachment != "")
                message.Attachments.Add(new Attachment(Attachment));

            message.Priority = MailPriority.High;

            smtpClient.Send(message);
            return "SendEmail";
        }
        catch (Exception ex)
        {
            return "Email :" + ex;
        }

    }