【发布时间】:2017-12-09 05:13:17
【问题描述】:
我目前使用 Gmail API 一次发送多个电子邮件。我按顺序执行此操作:
- 通过 GmailAPI 发送电子邮件
- 等待 GmailAPI 的响应。
- 收到响应后,使用 GmailAPI 返回的 ThreadID 更新记录。
- 对其他电子邮件重复步骤 1-3。
我正在阅读有关批处理您的 sendEmail API 请求的信息,以便我们对 API 进行一次调用并处理响应。 虽然我可以批量处理我的所有请求并发送它,
我不确定如何处理响应。如果我在批处理请求中有 30 个发送电子邮件请求,当收到批处理的响应时,我如何确定哪个响应是针对哪个电子邮件的?
这是我的实现
BatchRequest batch = gmailService.batch();
gmailService.users().messages().send("me", message).queue(batch, callback);
batch.execute();
final List<Message> messages = new ArrayList<Message>();
JsonBatchCallback<Message> callback = new JsonBatchCallback<Message>() {
public void onSuccess(Message message, HttpHeaders responseHeaders) {
System.out.println("MessageThreadID:"+ message.getThreadId());
System.out.println("MessageID:"+ message.getId());
synchronized (messages) {
messages.add(message);
}
}
@Override
public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders)
throws IOException {
}
};
【问题讨论】:
标签: java google-api gmail-api google-api-java-client