web-services - 从网络服务自动发送每日电子邮件的最佳实践

标签 web-services email

我正在运行一个 Web 服务,该服务当前通过 gmail smtp 服务器向新用户发送确认电子邮件。由于我每天只有几个新用户,所以这不是问题。

我最近向 web 应用程序添加了新功能,需要每天向每个用户发送自定义消息。将此视为类似于 LinkedIn 发出的常规消息,为您提供有关网络中事件的状态报告。每个用户的消息都会有所不同。对于成千上万的用户,这意味着每天将发送数千条独特的消息。

编辑:从那以后,我发现这些类型的电子邮件被称为“交易或关系消息”。 Spamtacular 有不错的 article on differentiating between marketing and transactional email .

我不认为使用 gmail 的 smtp 服务器会削减它,但我不确定。我不知道 gmail 每个帐户的最大外发邮件数是多少(可能是 100 封/天),但他们将外发邮件限制为每封邮件 500 个收件人。我不会向 500 个收件人发送一条消息,但我将发送 1000 条自定义消息,每个收件人每天收到一条。

我有兴趣学习这样做的任何最佳实践(特别是对于基于 Java 的 web 应用程序)。以下是我的一些想法和担忧:

  • 我应该设置自己的外发邮件服务器吗?如果我这样做,似乎我将有各种其他问题需要担心,例如防止邮件服务器滥用、监控退回邮件、允许选择退出电子邮件的方法等。是否有任何工具或服务可以提供帮助?有了这个?也许像 OpenEMM 或像 MailChimp 这样的服务?但这些似乎更侧重于电子邮件营销事件。
  • 我认为我不应该让 webapp 本身处理发送电子邮件,因为它目前用于新用户注册。我想我应该设置一个单独的消息服务器,它可以访问与 webapp 相同的后端/数据存储。对此有何想法?
  • 我是否应该考虑设置某种消息队列服务来帮助解决这个问题,例如 JMS、RabbitMQ、ActiveMQ 等?
  • 我是否需要为用户提供退出的方式?我需要将这些标记为批量消息吗?我并不真正考虑这些电子邮件营销信息,但我不确定什么被认为是适当的或适当的网络礼节。

  • 任何建议表示赞赏。我也对开源工具或 Web 服务非常感兴趣,它们可以简化事情并帮助我尽快上手。

    谢谢!

    最佳答案

    关于您的第一个问题,是的,您应该设置自己的邮件服务器。使用 gmail 执行此操作可能会奏效一段时间,但当他们看到此类事件时,他们可能会在短时间内关闭您。您可以注册一个企业帐户并使用应用引擎发送消息。这是一个 link有关该服务的邮件配额的信息。

    关于您的第二和第三个问题,最好让 Web 应用程序将消息排队并由集中式服务发送,而不是让应用程序自行发送消息。

    通常我只会使用一个数据库表作为一个队列——Web 应用程序为它想要发送的每条消息插入行。服务/计划任务应用程序将从表中获取新消息并将其发送出去。如果您想稍后切换邮件服务器,这为您提供了很大的灵活性,如果邮件服务器出现故障,则具有更好的可靠性,如果收件人未收到邮件出现问题,则可以更轻松地进行诊断,以及重新发送邮件的能力。至于使用 JMS/MQ 来做到这一点 - 可能没有必要。 IMO 用作队列的数据库表在这里比实际基于 JMS 的队列系统为您提供更大的灵活性。

    至于选择退出,是的 - 你应该给人们一种选择退出的方式。不过,我认为您不需要将消息标记为批量。

    关于web-services - 从网络服务自动发送每日电子邮件的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284528/

    相关文章:

    java - 使用 Spring 测试框架模拟服务的预期结果

    jquery - Phonegap 捕获图像然后将其上传到 REST Web 服务

    c# - 如何向 50 个用户发送推送通知

    email - 在 SAS 的 Outlook 电子邮件中指定表/列/单元格宽度

    java - 出现异常 :javax. mail.AuthenticationFailedException : 550 5. 2.1 无法访问邮箱

    java - 从用户计算机发送电子邮件的网页

    php - Symfony2 使用 besimple/soap-client 包使用 SOAP 服务

    c# - 将授权 header 添加到 Web 引用

    c# - "SmtpFailedRecipientException: Mailbox unavailable"邮箱可用时

    bash - 如何避免发送导致 "Extra line breaks in this message were removed"的电子邮件