第二次调用不发送SMTP邮件

本文关键字:SMTP 邮件 调用 第二次 | 更新日期: 2023-09-27 18:10:45

下面是调用sendmail方法的代码。问题是,只有sendmail的第一次调用将邮件发送到接收者。第二次调用sendmail时,它被完美地执行,但从未传递任何邮件。如果我将应用程序置于调试模式,然后一步一步地执行它,两个邮件都将被发送。这个程序的执行速度似乎太快了,以至于出了问题。因此,我在发送函数下面保留了一个延迟,所以它开始对我工作很好,但我不认为这是一个完美的解决方案。有人知道这里发生了什么吗?

        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;
                }
            }

第二次调用不发送SMTP邮件

我个人认为在这一点上唯一对你有用的是延迟代码.@Shadow是正确的,这就是服务器的配置方式