我在使用我的Gmail帐户通过我的ASP.NET应用程序发送简单电子邮件时遇到问题。我尽我所能寻求帮助,但由于某种原因,它只是一直给我一个错误而不发送任何电子邮件。
这是我设置为在按下按钮期间触发的代码:
protected void SubmitButton_Click(object sender, EventArgs e)
{
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.To.Add(new System.Net.Mail.MailAddress("an email address"));
mail.From = new System.Net.Mail.MailAddress("From Email Address");
mail.Subject = "PDMS New User Request";
mail.IsBodyHtml = true;
mail.Body = "A new user has requested access" + "\n\n"
+ "Name: " + inputFName.Text.ToString() + " " + inputLName.Text.ToString()
+ "\n"
+ "Organization: " + inputOrg.Text.ToString()
+ "\n"
+ "Email: " + inputEmail.Text.ToString()
+ "\n\n"
+ "Please contact them with their login information"
+ "-PDMS System Message";
mail.IsBodyHtml = true;
System.Net.Mail.SmtpClient systemEmail = new System.Net.Mail.SmtpClient();
systemEmail.UseDefaultCredentials = false;
systemEmail.Credentials=new System.Net.NetworkCredential("From email address", "From Email Addresses' password");
systemEmail.Port = 587 ;
systemEmail.Host="smtp.gmail.com";
systemEmail.EnableSsl=true;
systemEmail.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
try
{
systemEmail.Send(mail);
Label1.Visible = true;
Label2.Visible = false;
}
catch (Exception ex)
{
Label2.Text = "Email could not be sent due to errors";
}
我错过了什么?我似乎无法让这段代码实际发送任何内容 - 我是否需要首先配置Gmail中的设置?
答案 0 :(得分:2)
在Catch中删除Label并抛出Exception。然后我们可以轻松识别确切的异常,否则它会显示标签的默认文本。
try
{
systemEmail.Send(mail);
Label1.Visible = true;
Label2.Visible = false;
}
catch (Exception ex)
{
throw ex;//throw the exception
}
解决方案:
我认为您正面临 5.5.1需要身份验证
以下步骤将解决您的例外情况。
答案 1 :(得分:0)
我无法知道您收到的错误是什么,但是您可以在使用代码开始发送邮件之前在您的Gmail帐户中进行设置。请从您的Google帐户打开以下页面,然后打开访问不太安全的应用程序。
https://www.google.com/settings/security/lesssecureapps
请注意,如果您为Google帐户启用了2步验证,那么您将无法在上述页面上看到详细信息。从那里,您可以为您的Google帐户创建应用专用密码,然后该应用就可以通过您的Google帐户访问和发送邮件。
如果这不能解决您的问题,请编辑您的帖子并添加您收到的确切错误跟踪,以便我们进行调查。
答案 2 :(得分:0)
尝试一下......我之前使用过它可能会起作用
`
public void SendEmail()
{
MailMessage msg;
string emailId = string.Empty;
msg = new MailMessage();
SmtpClient smtp = new SmtpClient();
//sender email address
msg.From = new MailAddress("youremail@gmail.com");
//Receiver email address
msg.To.Add("receiver@gmail.com");
//email message subject
msg.Subject = "some string";
//email message body
msg.Body = "Some string".Trim();
msg.IsBodyHtml = true;
smtp.Credentials = new NetworkCredential("yourEmail@gmail.com","yourpassword");
smtp.Port = 587;
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
smtp.Send(msg);
}`