是否可以为Mandrill创建"开发"API密钥?

Chr*_*s B 9 mandrill

我正在使用Mandrill从我的Rails 3应用程序发送电子邮件.在生产中,我使用我在其管理控制台中设置的API密钥.为了防止开发和测试可能通过电子邮件发送给所有用户的SNAFU,我将垃圾密钥放在开发和测试环境配置中,我只将真实密钥放在生产配置中.Mandrill允许您创建多个API密钥.有没有人知道是否有办法配置Mandrill,以便使用开发或测试密钥发送电子邮件的API调用将失败,除非满足某个先决条件(例如,电子邮件域匹配mycompany.com)?

Ale*_*u R 14

Mandril现在添加了测试API密钥.在他们的网站上阅读更多


Kai*_*lin 8

Mandrill API密钥的功能相同,并且对帐户中的所有API调用具有完全访问权限.目前没有开发,沙箱或测试密钥或作用域API密钥的概念.但是,测试模式/功能在开发路线图上.我目前没有ETA,但这绝对是我们正在努力的事情.

编辑添加:截至本答复时,这是不可能的.Mandrill现在有一个测试模式.

  • 我想更新并告知您我们添加了一些有助于测试和安全性的新功能.首先,API密钥现在可以限定为仅从某些IP地址起作用和/或仅能够访问某些API调用.规则引擎允许您自动拒绝符合特定条件的电子邮件,因此,如果您的测试环境都发送"来自"相同的地址,您可以拒绝这些电子邮件而不是发送,如果您愿意的话.我们仍在计划其他测试功能,所以请随时向我们提供反馈或想法 - help.mandrill.com (4认同)

Mar*_*ery 7

在Mandrill中创建"开发"API密钥有两种可能的方法,它们服务于不同的用例:

  1. 创建一个测试密钥.实际上不会发送使用此密钥发送的电子邮件.这是最简单的方法,如果您的测试流程不需要您实际接收测试电子邮件,那么这是合适的.(你仍然可以看到这些邮件的内容已经在出站标签被发送.)

  2. 创建一个实时API密钥,并使用规则引擎进行设置,以便使用此密钥发送的电子邮件将被自动拒绝,除非收件人地址与某些模式匹配.如果您的测试流程要求实际接收您发送的电子邮件,则应使用此方法 - 例如,如果您对密码重置功能进行了自动端到端测试.

方法1:使用测试模式

测试模式已于2013年添加到Mandrill.要使用它,请首先从" 设置"选项卡的" SMTP和API信息"部分的" API密钥"子部分创建测试密钥.您在此处创建的第一个键将始终是实时键,但如果您再次单击"新API键",则可以选择创建测试键:

屏幕截图显示

完成后,使用测试密钥"发送"一些电子邮件(实际上不会发送电子邮件),然后单击屏幕右上角的下拉菜单中的"启用测试模式"选项:

屏幕截图显示了如何打开测试模式

当管理面板处于测试模式时,如果您转到出站选项卡,您将能够看到您已要求Mandrill使用您的测试API密钥发送的电子邮件,就像它们确实已经发送一样.

方法2:使用规则引擎

首先,从" 设置"选项卡的" SMTP和API信息"部分的" API密钥"子部分创建一个新的实时API密钥.您必须为密钥指定一个描述,否则您将无法从规则引擎中引用它.

接下来,转到Outbound选项卡的Rules部分,然后单击"Add Rule":

显示

在"规则"界面中,设置一个规则,如果API密钥是您的测试密钥且收件人的电子邮件与您选择的某种模式匹配,则该规则将拒绝电子邮件.模式可以是单个电子邮件地址testbot@yourdomain.com,也可以是整个域,例如*@yourdomain.com.

示例规则

如果您想制作自己的复杂模式,请注意,根据文档,Mandrill使用Python的fnmatch模块将您的模式与电子邮件地址相匹配(使用glob语法,如果您使用Unix,您可能会熟悉shell) .

您使用此密钥发送到与您的模式匹配的域的电子邮件将真正发送并显示在实时的Outbound选项卡中.与该模式不匹配的那些将不会被发送,并将在实时的Outbound选项卡中显示为"已拒绝".