这是调用sendmail
方法的代码。问题是只有第一次调用 sendmail
才会将邮件发送给接收者。第二次调用 sendmail
时,它执行得很好,但从未发送任何邮件。如果我将应用程序置于 Debug模式,然后逐步执行,两封邮件都会送达。好像程序的执行速度快到出问题了。因此我在发送函数下面保留了一个延迟,所以它开始对我来说工作正常,但我认为这不是一个完美的解决方案。任何人都知道这里发生了什么。
if (!String.IsNullOrEmpty(SendMailAdmin))
{
SendMail(SendMailFrom, SendMailAdmin, Subject, AdminMessageText + "<br>" + MessageText);
}
if (!String.IsNullOrEmpty(SendMailOwner))
{
SendMail(SendMailFrom, SendMailOwner, Subject, OwnerMessageText + "<br>" + MessageText);
}
public void SendMail(String MessageFrom, String MessageTo, String MessageSubject, String MessageBody)
{
MailMessage Message = new MailMessage();
Message.Priority = MailPriority.High;
Message.From = new MailAddress(MessageFrom);
Message.To.Add(MessageTo);
Message.Subject = MessageSubject;
Message.IsBodyHtml = true;
Message.Body = MessageBody;
try
{
SmtpClient client = new SmtpClient(SMTPServer, Convert.ToInt32(SMTPPort));
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("{myusername}", "{mypassword}");
client.Send(Message);
System.Threading.Thread.Sleep(3000);
}
catch
{
throw;
}
}
最佳答案
我个人认为此时唯一对您有用的是延迟代码。@Shadow 是对的,这就是服务器的配置方式
关于c# - SMTP 邮件不发送第二次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671949/