为什么System.Net.Mail可以在我的c#Net web应用程序的一部分工作,而不能在另一部分工作?
我有一个web应用程序,它在我公司域内的IIS上运行,并通过intranet进行访问。我让这个应用程序根据一些用户操作发送电子邮件。例如,它在某种程度上是一个调度应用程序,因此如果任务完成,将发送一封电子邮件通知其他用户 问题是,电子邮件在某些情况下可以完美地工作,而在其他情况下则根本不能。我有一个login.aspx页面,在加载页面时发送报告电子邮件(每天通过windows任务调度器加载一次)-这似乎总是工作得很好。我有一个更新页面,当输入文本并单击“更新”按钮时,该页面应该发送电子邮件-此操作大部分时间都会失败。这两个任务都使用我编写的使用System.Net.Mail发送电子邮件的相同静态重载方法 我曾尝试使用gmail作为我的smtp服务器(而不是我们的内部服务器),并得到了相同的结果 我调查了运行本地SMTP服务是否有任何区别,但似乎没有。此外,既然C#是服务器端代码,那么它不应该只影响服务器上运行的内容,而不影响客户端吗 请帮我弄清楚出了什么问题!我应该去哪里看?我能试试什么 下面是我发送电子邮件的代码为什么System.Net.Mail可以在我的c#Net web应用程序的一部分工作,而不能在另一部分工作?,c#,asp.net,web-applications,smtp,system.net.mail,C#,Asp.net,Web Applications,Smtp,System.net.mail,我有一个web应用程序,它在我公司域内的IIS上运行,并通过intranet进行访问。我让这个应用程序根据一些用户操作发送电子邮件。例如,它在某种程度上是一个调度应用程序,因此如果任务完成,将发送一封电子邮件通知其他用户 问题是,电子邮件在某些情况下可以完美地工作,而在其他情况下则根本不能。我有一个login.aspx页面,在加载页面时发送报告电子邮件(每天通过windows任务调度器加载一次)-这似乎总是工作得很好。我有一个更新页面,当输入文本并单击“更新”按钮时,该页面应该发送电子邮件-此操
public static void sendEmail(String[] recipients, String sender, String subject, String body, String[] attachments)
{
MailMessage message;
try
{
message = new MailMessage(sender, recipients[0]);
}
catch (Exception)
{
return;
}
foreach (String s in recipients)
{
if (!message.To.Contains(new MailAddress(s)))
message.To.Add(s);
}
message.From = new MailAddress(sender);
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("PRIVATE.PRIVATE.PRIVATE", 25);
smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
smtp.UseDefaultCredentials = true;
if (attachments.Count() > 0)
{
foreach (String a in attachments)
{
message.Attachments.Add(new Attachment(a));
}
}
try
{
smtp.Send(message);
}
catch (Exception e)
{
}
}
}
在代码到达sendmail方法之前,您的代码中可能会出现异常,因此您的sendmail方法永远不会被调用,如果您有日志,您应该在那里检查发生了什么
此外,它可能在您的login.aspx上工作,因为您没有收到异常,并且代码执行完毕。发送消息时会出现什么错误?如果发送的邮件没有错误,但没有收到,则可能只是根据邮件内容过滤垃圾邮件。请发布发送电子邮件的代码。没有这些,任何人都很难帮助你。我理解没有代码是很难的。我的问题是知道要包含哪些代码。我在下面添加了静态邮寄方法。我不确定我是否理解你的观点。它之所以有效是因为它有效?