【问题标题】:Is it a good idea to use Database Mail as an email relay server?将数据库邮件用作电子邮件中继服务器是个好主意吗?
【发布时间】:2012-10-16 20:20:51
【问题描述】:

我们的一个问题是我们的出站电子邮件服务器有时很糟糕。用户将在我们的应用程序中触发一封电子邮件,应用程序可能需要大约 30 秒才能实际发送它。让我们让它变得更糟,并承认我们甚至没有在后台线程上执行此操作,因此在此期间用户被完全阻止。 SQL Server 数据库邮件已被提议作为此问题的解决方案,因为它基本上实现了一个消息队列,并且在物理上比我们的第三方电子邮件主机更接近且响应速度更快。诚然,它对我们来说也很容易实现,因为它只是用存储过程的执行替换了对SmtpClient.Send 的一次调用。我们的大多数申请电子邮件都包含 PDF、XLS 等,我发现这些附件的大小高达 20MB。

使用数据库邮件处理我们所有的应用程序电子邮件对我来说很糟糕,但鉴于实施成本极低,我很难说服任何人放弃它。我们的生产数据库服务器功能太强大了,所以我也不确定它无法处理负载。有什么想法或更安全的选择吗?

【问题讨论】:

    标签: sql-server database-mail emailrelay


    【解决方案1】:

    您所要做的就是通过 SMTP 服务器运行它,如果您计划发送大量邮件,那么您不仅需要对服务器(如果您计划使用 DNS 服务器)进行负载平衡一次发送 100K + 邮件),但请确保您的出站电子邮件服务器在 DNS 中注册了正确的 A 记录,以防止退回。

    这是一个便宜的解决方案(减去负载平衡器成本)。

    【讨论】:

    • 您能详细说明一下吗?你的意思是在我们的局域网上托管一个 SMTP 服务器并使用它吗?垃圾邮件过滤会是一个问题吗?我们会发送我认为少量的电子邮件,但经常会发送大型附件,所以我不确定负载平衡是否值得。
    【解决方案2】:

    是的,您的内部局域网和互联网的双主服务器,并确保它是仅出站服务器。从一台 SMTP 服务器开始,如果您马上遇到瓶颈,请查看它是否与内存、磁盘、网络或负载相关。如果它的负载相关,那么可能是时候看看负载平衡了。如果它与内存有关,请向其投入更多内存。如果它与磁盘相关,则向其抛出一个 raid 0+1 阵列。如果它与网络相关,请使用更大的管道。

    【讨论】:

    • 我是一个非常糟糕的网络/服务器管理员。我们实际的网络/服务器管理人员说,收件人可能会阻止我们的电子邮件,因为他们无法对我们的 SMTP 服务器进行反向查找。我真的不知道这意味着什么,但我正在研究它。另外,欢迎来到 StackOverflow!最好只编辑原始答案,而不是发布新答案来回答后续问题。
    • 告诉您的网络管理员,只要配置正确的 DNS 记录,这不会成为问题。
    • 他说我们的域已经指向一个邮件服务器(它不是我们自己的),我们需要使用子域或奇怪的东西才能拥有第二个。
    • 就是这样(使用子域)。它必须是您的 SQL 服务器的独立安装。
    猜你喜欢
    • 2015-05-24
    • 2020-12-12
    • 2010-09-22
    • 1970-01-01
    • 2015-05-12
    • 2020-05-04
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    相关资源
    最近更新 更多