in src/main/java/org/apache/sling/commons/messaging/mail/internal/SimpleMailService.java [188:217]
private void send(@NotNull final MimeMessage message) {
final var configuration = this.configuration;
Objects.requireNonNull(configuration, "Configuration must not be null");
final var cryptoService = this.cryptoService;
Objects.requireNonNull(cryptoService, "Crypto service must not be null");
try {
final ClassLoader tccl = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
final String password = cryptoService.decrypt(configuration.password());
try (Transport transport = message.getSession().getTransport(SMTPS_PROTOCOL)) {
final List<ConnectionListener> connectionListeners = this.connectionListeners;
connectionListeners.forEach(transport::addConnectionListener);
final List<TransportListener> transportListeners = this.transportListeners;
transportListeners.forEach(transport::addTransportListener);
transport.connect(configuration.mail_smtps_host(), configuration.mail_smtps_port(), configuration.username(), password);
message.saveChanges();
final MessageIdProvider messageIdProvider = this.messageIdProvider;
if (messageIdProvider != null) {
final String messageId = messageIdProvider.getMessageId(message);
message.setHeader(MESSAGE_ID_HEADER, String.format("<%s>", messageId));
}
logger.debug("sending message '{}'", message.getMessageID());
transport.sendMessage(message, message.getAllRecipients());
} finally {
Thread.currentThread().setContextClassLoader(tccl);
}
} catch (MessagingException e) {
throw new CompletionException(e);
}
}