【问题标题】:Send email from ASP.NET application through an external exchange server通过外部交换服务器从 ASP.NET 应用程序发送电子邮件
【发布时间】:2012-01-03 19:06:45
【问题描述】:

我有一个 ASP.NET 应用程序,指向部署在 IIS6 中的用 C# 编写的 2.0 版框架。

我正在维护应用程序,因此我不清楚它的某些部分。

应用程序必须通过外部交换服务器向 oldMailAddress 发送电子邮件消息,并且已正确完成。现在我添加了一个 newMailAddress 并且我没有更改代码中的任何其他内容。

oldMailAddress 接收通过应用程序发送的电子邮件,newMailAddress 不接收。我尝试从我的邮箱向 newMailAddress 发送电子邮件并且它工作正常。

我在 Internet 上查找了解决方案,发现大多数都是基于安装在 IIS6 中的 SMPT 服务。好吧,我没有安装这些服务,我认为没有必要,因为该应用程序正在使用 oldMailAddress。特此附上我使用的代码,希望大家帮忙。

MailMessage oMail = new MailMessage();

switch (destination)
            {
                case "production":
                    strMailAddress = "newMailAdress@domain.eu";
                    oMail.From = new MailAddress(strMailAddress);
                    oMail.To.Add(strMailAddress);
                    break;
                case "warehouse":
                    strMailAddress = "oldMailAdress@domain.eu";
                    oMail.From = new MailAddress(strMailAddress);
                    oMail.To.Add(strMailAddress);
                    break;
            }
oMail.Subject = sTitle;
oMail.IsBodyHtml = true;
oMail.Body = sHTML;

SmtpClient oSmpt = new SmtpClient("external.smpt.eu");
oSmpt.Send(oMail);

【问题讨论】:

  • 您确定您的 switch 语句工作正常吗?在“生产”案例的情况下,您可以将电子邮件地址设置为 oldMailAddress 并查看您是否仍然收到电子邮件?当电子邮件来自应用程序时,Exchange 服务器可能会限制将电​​子邮件发送到该电子邮件地址。还是您正在使用 Exchange 进行身份验证?
  • 开关工作正常,因为在“生产”情况下,我没有一个新的邮件地址,而是一个抄送。我的基础架构人员说,对于授权,一切都很好。在 IIS6 和 web.cofig 中都没有邮件设置的痕迹。有没有第三种方法来配置 SMTP 设置?

标签: asp.net email exchange-server


【解决方案1】:

我的猜测是存在身份验证问题,或者电子邮件被@newMailAddress 捕获在垃圾邮件文件夹中。

如果您仍然无法弄清楚,那么我建议您启用日志记录(如果您有写入权限)。我有一个关于如何启用登录的解释:

http://www.systemnetmail.com/faq/4.10.aspx

【讨论】:

  • 感谢您的回答。我没有在垃圾邮件文件夹中找到任何电子邮件,基础设施人员告诉我,他们授权 Web 服务器 IP 地址通过交换服务器发送电子邮件。会不会是oSmpt.DeliveryMethod = SmtpDeliveryMethod.Network;之类的投递方式设置?
  • 您是否启用了日志记录?日志文件说了什么?
猜你喜欢
  • 2015-07-07
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 2016-02-23
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
相关资源
最近更新 更多