如何测试发送数以千计的电子邮件

时间:2017-01-11 00:53:11

标签: ruby-on-rails email amazon-web-services amazon-ses

我正在开发一个应用程序,它将使用Amazon SES基于CSV文件每天发送数千封电子邮件。

我的客户希望一次发送大约50,000个。

该应用程序几乎已完成,但我想用数千封电子邮件进行测试。在我第一次尝试使用实时数据时它会起作用,真是太遗憾了。

现在我只使用我的CSV文件中的大约10封电子邮件对其进行了测试。

有没有人知道测试发送大约10,000封电子邮件的方法?显然我无法使用真实数据。

3 个答案:

答案 0 :(得分:3)

我相信你可以使用真实的数据。例如,要测试10,000封电子邮件,您可以执行以下操作(假设您已经increased your SES sending limits):

  1. 在CSV文件中为您已管理的目标域生成10,000个电子邮件收件人。这10,000个电子邮件地址应该是随机的,不存在的(例如,1eed1417-cc2c-4f7c-8ddb-7e0dfbcacb31@mydomain.com)。
  2. 为mydomain.com配置一个包罗万象的电子邮件地址(例如,catch-all@mydomain.com),以接收发送到任何不存在的地址的电子邮件。
  3. 将SES SMTP服务器添加到mydomain.com的受信任发件人/地址,并确保您的邮件服务器的限制规则允许此发送卷。
  4. 在非高峰时段进行测试,并检查全部邮箱的收件箱。

答案 1 :(得分:0)

我假设您没有进行完整的端到端测试(包括检查以确保收到电子邮件),而只是执行应用程序逻辑的功能测试。

如果是这种情况,

  1. 将您的应用程序指向测试电子邮件服务器disable outbound email for all queues。你也可以在生产服务器上这样做,比如凌晨3点,我猜,但要小心!

  2. 运行应用程序

  3. 检查电子邮件服务器的发件箱并计算已排队的项目数。

  4. 如果计数匹配,则您的测试已通过。

  5. 在重新开启之前不要忘记清除队列!

答案 2 :(得分:0)

我最终做的是使用https://mailtrap.io/

我发了25封电子邮件。然后向25封电子邮件中的每一封发送了600封电子邮件。这相当于15,000。

我没有使用动作邮件发送电子邮件。我使用了Amazon SES发送电子邮件方法

  def send_email!
    client.send_email(email_attributes)
  end

  private

  def client
    Aws::SES::Client.new(region: Rails.application.secrets.ses_region,
                         access_key_id: Rails.application.secrets.aws_access_key_id,
                         secret_access_key: Rails.application.secrets.aws_secret_access_key)
  end

使用Kabana跟踪电子邮件。如果他们反弹,交付等等。

SES不会跟踪电子邮件的开启情况,因此我们有一个小型的Node-JS应用程序,可以跟踪打开和可点击的链接。

该应用程序在20分钟内发送大约15000封电子邮件。