Asp.net Can';不要从我的网站发送电子邮件
我现在的处境很奇怪。当我从localhost发送电子邮件时,它工作正常,但是当我将页面上传到服务器并尝试发送电子邮件时,我得到以下错误 SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:需要5.5.1身份验证 我在标签中显示错误消息用于测试,尝试也放错了位置。我知道,我稍后会设置它 我使用的代码是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
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;
}
}