我们目前使用Mandrill发送电子邮件,这样就可以了。
现在我们希望将Mandrill webhooks捕获回我们的服务器,并使用事件信息注释相应的电子邮件源记录。为了做到这一点,我们认为我们必须将原始邮件的ID传递给webhook,以便我们可以在webhook到达时从我们的服务器中提取该邮件。
我们认为正确的方法是在邮件中添加Mandrill元数据字段,但我们在执行此操作时遇到了麻烦。
我们尝试了以下(有变化):
Message.Headers.Add("X-MC-METADATA", "\"OriginId\": \"" + Id + "\"");
但是,永远不会在webhook中返回OriginId,我们也不会在电子邮件的来源中看到此标题。似乎我们没有正确的格式,并且Mandrill正在剥离此标题。
答案 0 :(得分:0)
元数据类型接受数组,因此请尝试使用{}
包装元数据Message.Headers.Add("X-MC-METADATA", "{\"OriginId\": \"" + Id + "\"}");
检查API日志并查看原始邮件的外观,它应该包含以下内容:
X-MC-Metadata: { \"testkey\": \"testvalue\"}
我正在做的是将所有元数据存储在字典中,使用JSON转换器创建字符串,然后剥离所有/ n / r字符。结束结果字符串被设置为标题值。