如何测试发送数千封电子邮件
How To Test Sending Thousands Of Emails
我正在开发一个应用程序,该应用程序将使用 Amazon SES 基于 CSV 文件每天发送数千封电子邮件。
我的客户希望一次发送大约 50,000 个。
该应用程序即将完成,但我想用数千封电子邮件对其进行测试。如果我第一次尝试使用实时数据时它不起作用,那真是太可惜了。
现在我只使用我的 CSV 文件中的大约 10 封电子邮件对其进行了测试。
有谁知道可以测试发送大约 10,000 封电子邮件的方法吗?显然我不能使用真实数据。
我假设您没有进行完整的端到端测试(包括检查以确保收到电子邮件),而只是对您的应用程序逻辑执行功能测试。
如果是这样,
将您的应用程序指向测试电子邮件服务器并 disable outbound email for all queues。您也可以在生产服务器上执行此操作,我猜是 3:00 上午,但要小心!
运行 申请
检查电子邮件服务器的发件箱并计算已排队的邮件数。
如果计数匹配,则您的测试已通过。
不要忘记在重新打开之前清除队列!
我相信你可以使用真实的数据。例如,要测试 10,000 封电子邮件,您可以执行以下操作(假设您已经 increased your SES sending limits):
- 在 CSV 文件中为您已经管理的目标域生成 10,000 个电子邮件收件人。这 10,000 个电子邮件地址应该是随机的并且不存在(例如,1eed1417-cc2c-4f7c-8ddb-7e0dfbcacb31@mydomain.com)。
- 为 mydomain.com 配置一个万能电子邮件地址(例如 catch-all@mydomain.com)以接收发送到任何不存在地址的电子邮件。
- 将 SES SMTP 服务器添加到 mydomain.com 的受信任 senders/addresses 并确保您的邮件服务器的限制规则允许此发送量。
- 在非高峰时段进行测试,并检查您的万能邮箱的收件箱。
我最后做的是使用 https://mailtrap.io/
我发送了 25 封电子邮件。然后向这 25 封电子邮件中的每封邮件发送 600 封电子邮件。那等于 15,000。
我没有使用 action mailer 发送邮件。我使用了 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 封电子邮件。
我正在开发一个应用程序,该应用程序将使用 Amazon SES 基于 CSV 文件每天发送数千封电子邮件。
我的客户希望一次发送大约 50,000 个。
该应用程序即将完成,但我想用数千封电子邮件对其进行测试。如果我第一次尝试使用实时数据时它不起作用,那真是太可惜了。
现在我只使用我的 CSV 文件中的大约 10 封电子邮件对其进行了测试。
有谁知道可以测试发送大约 10,000 封电子邮件的方法吗?显然我不能使用真实数据。
我假设您没有进行完整的端到端测试(包括检查以确保收到电子邮件),而只是对您的应用程序逻辑执行功能测试。
如果是这样,
将您的应用程序指向测试电子邮件服务器并 disable outbound email for all queues。您也可以在生产服务器上执行此操作,我猜是 3:00 上午,但要小心!
运行 申请
检查电子邮件服务器的发件箱并计算已排队的邮件数。
如果计数匹配,则您的测试已通过。
不要忘记在重新打开之前清除队列!
我相信你可以使用真实的数据。例如,要测试 10,000 封电子邮件,您可以执行以下操作(假设您已经 increased your SES sending limits):
- 在 CSV 文件中为您已经管理的目标域生成 10,000 个电子邮件收件人。这 10,000 个电子邮件地址应该是随机的并且不存在(例如,1eed1417-cc2c-4f7c-8ddb-7e0dfbcacb31@mydomain.com)。
- 为 mydomain.com 配置一个万能电子邮件地址(例如 catch-all@mydomain.com)以接收发送到任何不存在地址的电子邮件。
- 将 SES SMTP 服务器添加到 mydomain.com 的受信任 senders/addresses 并确保您的邮件服务器的限制规则允许此发送量。
- 在非高峰时段进行测试,并检查您的万能邮箱的收件箱。
我最后做的是使用 https://mailtrap.io/
我发送了 25 封电子邮件。然后向这 25 封电子邮件中的每封邮件发送 600 封电子邮件。那等于 15,000。
我没有使用 action mailer 发送邮件。我使用了 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 封电子邮件。