我试图使用LocalStack进行端到端测试,但我无法阅读通过LocalStack/SES发送的电子邮件。有办法吗?
我希望我的Cypress e2e测试调用我的后端服务,后端服务编写一个包含链接的电子邮件,并通过LocalStack/SES发送电子邮件。然后,我希望我的e2e测试等待这封电子邮件,阅读其中发送的链接,然后继续。
我设法调用LocalStack的SES发送电子邮件,并且我知道支持LocalStack的moto库将发送的消息存储在内存中。有办法读那些信息吗?
发布于 2022-06-08 20:11:41
发送的消息可以通过服务API端点(GET /_local堆栈/ses)或从文件系统检索。
消息也保存到数据目录(DATA_DIR,请参阅配置)。如果数据目录不可用,则使用临时目录(TMPDIR)。这些文件被保存为ses/子目录中的JSON,并由消息ID组织。
发布于 2021-07-03 11:04:42
Local堆栈使用Moto,Moto确实公开了检查发送的电子邮件的能力。在这里讨论。
https://github.com/spulec/moto/issues/1392
查看一下本地堆栈的代码,就不会发现它们公开了一个函数来访问这些信息。
https://github.com/localstack/localstack/blob/master/localstack/services/ses/ses_starter.py
您将需要向Local堆栈发出拉请求,并添加一个公开ses_backend或特别是sent_messages数组的函数。
从moto.ses导入ses_backend ses_backend.sent_messages
我不使用SES的本地堆栈,我是针对我们真正的质量保证测试环境(真正的SES)运行E2E测试的。在这种情况下,您可以使用以下之一。
你需要的是一种程序化的方式来阅读收件箱和检查电子邮件的标题,也许身体也是如此。
每个价格都是可比的,MailTrap也有一个免费的选择。
https://stackoverflow.com/questions/62289515
复制相似问题