SMTP功能将不发送

  • 本文关键字:功能 SMTP smtp
  • 更新时间 :
  • 英文 :


我创建了一个代码,用户将在其中输入一个电子邮件地址,然后将根据数据库进行检查,并确认它是该数据库的一部分。该部分起作用,还确保用户在文本框中输入数据。我不能做的事情是让应用程序发送电子邮件。我每次都尝试过多个版本来重新制作它,并尝试过不同的端口来发送电子邮件。一些端口正常工作,并尝试在catch error appaers显示电子邮件发送失败之前发送电子邮件。如果有人有什么想法,请告诉我。非常感谢。

这是我尝试发送电子邮件时使用的代码;

string mail = txtEmail.Text;

SqlDataAdapter adapt = new SqlDataAdapter("Select COUNT(*) FROM AdminLogin where AdminEmail='" + mail + "'", strcon);
DataTable tab = new DataTable();
adapt.Fill(tab);
strcon.Open();
string email = "Select AdminEmail FROM AdminLogin where AdminEmail='" + mail + "'";
SqlCommand comm = new SqlCommand(email, strcon);
SqlDataReader reader = comm.ExecuteReader();
Regex emailregex = new Regex(@"[a-z0-9!#$%&'*+/=?^_{|}~]+(?:.[a-z0-9!!#$%&'*+/=?)^_{|}~-]+)");
Random rand = new Random();
randomcode = (rand.Next(999999)).ToString();
if (txtEmail.Text != "")
{
if (emailregex.IsMatch(mail))
{
if (reader.Read())
{
using (SmtpClient smtp = new SmtpClient("smtp.gmail.com"))
{

string from, to;
from = "apmckee11@gmail.com";
to = (txtEmail.Text).ToString();
MailMessage mess = new MailMessage();
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
NetworkCredential NC = new NetworkCredential
{
UserName = "apmckee11@gmail.com",
Password = "Password"
};
mess.To.Add(to);
mess.From = new MailAddress(from);
mess.Body = ("Your Reset Code is :" + randomcode);
mess.Subject = "Password reseting code!";
mess.IsBodyHtml = true;
smtp.Host = "smtp.gmail.com";
smtp.UseDefaultCredentials = true;
smtp.Credentials = NC;                         
smtp.EnableSsl = true;
smtp.Timeout = 60;
smtp.Port = 587;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
try 
{ 
smtp.Send(mess);
lblSent.Visible = true;
}
catch (Exception ex)
{
lblFail.Visible = true;
}
}
}
else
{
lblWrong.Visible = true;
}
}
else
{
lblWrong.Visible = true;
}
}
else
{
lblMissing.Visible = true;
}

我假设您使用的是C#和这个库。

尝试将其添加到代码中,错误消息应该会解释问题所在。使用您得到的输出更新您的问题。

catch (Exception ex)
{
Console.WriteLine("Exception caught in CreateTestMessage2(): {0}",
ex.ToString());
}

顺便说一句,如果你正在使用这个库,那么你应该切换到MailKit,因为smtp已经过时了,正如文档中提到的那样。

最新更新