我已在AWS SES中为入站电子邮件设置了规则集。此入站规则接收电子邮件,lambda函数处理电子邮件内容。
直到几天前我才开始收到以下错误消息,这是在向连接到入站规则的地址发送电子邮件时:
import { Meteor } from "meteor/meteor";
import { Mongo } from "meteor/mongo";
export const Attachment = new Mongo.Collection("attachment");
let BinData = Mongo.BinData; //wrong initialisation
function createAttachment(fileData) {
const data = new Buffer(fileData, "base64");
Attachment.insert({file: new BinData(0, data)});
}
但是 - 该规则仍会触发相应的lambda函数,这意味着电子邮件实际上已经发送。
如何阻止服务器发送此响应?
答案 0 :(得分:0)
我认为导致这种情况的lambda函数不是这种情况的罪魁祸首。
还有另一条规则失败,因为它无法访问应该保存传入电子邮件的S3存储桶。
获得的经验:当传入的SES规则无法成功退出时,将从电子邮件服务器发回此错误消息。
答案 1 :(得分:0)
如果将来有人遇到这个问题,而卡尔的解决方案不是问题:我遇到了这个确切的问题,事实证明,操作顺序是引起该错误的原因。
如果Lambda函数动作在S3动作之前 ,则即使流程按预期工作,也会抛出4.3.0 smtp; 451 4.3.0 This message could not be delivered due to a recipient error. Please try again later
错误。如果将它们交换过来,那么它是S3然后是lambda,则可以正常工作。