private CompletableFuture<SmtpClientResponse> sendAsChunked(String from, Collection<String> recipients, MessageContent content, Optional<SendInterceptor> sequenceInterceptor) {
if (ehloResponse.isSupported(Extension.PIPELINING)) {
List<Object> objects = Lists.newArrayListWithExpectedSize(3 + recipients.size());
objects.add(mailCommand(from, recipients));
objects.addAll(rpctCommands(recipients));
Iterator<ByteBuf> chunkIterator = content.getContentChunkIterator(channel.alloc());
ByteBuf firstChunk = chunkIterator.next();
if (firstChunk == null) {
throw new IllegalArgumentException("The MessageContent was empty; size is " +
(content.size().isPresent() ? Integer.toString(content.size().getAsInt()) : "not present"));
}
objects.add(getBdatRequestWithData(firstChunk, !chunkIterator.hasNext()));
return beginSequence(sequenceInterceptor, objects.size(), objects.toArray())
.thenSendInTurn(getBdatIterator(chunkIterator))
.toResponses();
} else {
SendSequence sequence = beginSequence(sequenceInterceptor, 1, mailCommand(from, recipients));
for (String recipient : recipients) {
sequence.thenSend(SmtpRequests.rcpt(recipient));
}
return sequence
.thenSendInTurn(getBdatIterator(content.getContentChunkIterator(channel.alloc())))
.toResponses();
}
}
SmtpSession.java 文件源码
java
阅读 33
收藏 0
点赞 0
评论 0
项目:NioSmtpClient
作者:
评论列表
文章目录