Java 如何在使用amazon SES SMTP接口发送电子邮件后获得响应?
文件中说,在发送电子邮件后,无论成功与否,SES都会向发件人返回一个响应,包括消息ID和一个错误(如果发送不成功)。 我想知道如何得到这个答复 我使用SMTP和JavaMail发送电子邮件,如:Java 如何在使用amazon SES SMTP接口发送电子邮件后获得响应?,java,spring,spring-boot,jakarta-mail,amazon-ses,Java,Spring,Spring Boot,Jakarta Mail,Amazon Ses,文件中说,在发送电子邮件后,无论成功与否,SES都会向发件人返回一个响应,包括消息ID和一个错误(如果发送不成功)。 我想知道如何得到这个答复 我使用SMTP和JavaMail发送电子邮件,如: transport.sendMessage(msg,msg.getAllRecipients()) sendMessage方法不返回任何内容。那么我怎样才能得到回应呢 提前谢谢 更新: 在中国,据说 SMTP返回附加到数据命令的OK响应的邮件ID。 例如:250 Ok 0000aaccaaccaaac
transport.sendMessage(msg,msg.getAllRecipients())代码>
sendMessage
方法不返回任何内容。那么我怎样才能得到回应呢
提前谢谢
更新:
在中国,据说
SMTP返回附加到数据命令的OK响应的邮件ID。
例如:250 Ok 0000aaccaaccaaaccc-ccccaacc-aaaa-cccc-aaaa-accccaaaae-000000
有人能教我如何从OK响应中提取消息ID吗?您最多可以用传输注册一个传输侦听器,这个侦听器将用传输事件调用。每次传输对象发出诸如消息已传递
,消息未传递
,消息已部分传递
之类的事件时,都会调用此TransportListener
你可以这样做-
// Create a transport.
Transport transport = session.getTransport();
//Register your event listener
//This TransportListener is called every time Transport object emits an events like `MESSAGE_DELIVERED`, `MESSAGE_NOT_DELIVERED`, `MESSAGE_PARTIALLY_DELIVERED`.
transport.addTransportListener(new TransportListener() {
@Override
public void messageDelivered(TransportEvent transportEvent) {
System.out.println("From Message Delivered");
System.out.println(transportEvent.getMessage());
}
@Override
public void messageNotDelivered(TransportEvent transportEvent) {
System.out.println("From Message Not Delivered");
System.out.println(transportEvent.getMessage());
}
@Override
public void messagePartiallyDelivered(TransportEvent transportEvent) {
System.out.println("From Message Partially Delivered");
System.out.println(transportEvent.getMessage());
}
});
我认为您可以使用配置集。它只需要添加带有配置集标题值的标题X-SES-CONFIGURATION-SET
以下是完整链接:
稍后,当您配置配置集时,您可以将其设置为在SNS上推送传递、跳出等通知。您可以在应用程序中订阅
以下是一个链接:
以及传递对象的链接:
我算出了
我应该使用SMTPTransport
类的getLastServerResponse()
方法,例如
String response = transport.getLastServerResponse();
System.out.println("response: " + response);
输出将类似于
回复:250 Ok 0100017352b73695-a103f18d-f0a3-4a48-9d86-db1df264a3fe-000000
非常感谢您,虽然还没有解决我的问题,但它很有帮助。我找到一个线程,它说SMTP返回附加到数据命令的OK响应的消息ID。例如:250 Ok 0000aaccaaccaacccc-ccccaacc-aaaa-cccc-aaaa-accccaaaae-000000
。你能教我如何提取消息ID吗?