//Declare the factory and the connection pool, usually at the application startup
SmtpConnectionPool smtpConnectionPool = new SmtpConnectionPool(SmtpConnectionFactoryBuilder.newSmtpBuilder().build());
//borrow an object in a try-with-resource statement or call `close` by yourself
try (ClosableSmtpConnection transport = smtpConnectionPool.borrowObject()) {
MimeMessage mimeMessage = new MimeMessage(transport.getSession());
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, false);
mimeMessageHelper.addTo("[email protected]");
mimeMessageHelper.setFrom("[email protected]");
mimeMessageHelper.setSubject("Hi!");
mimeMessageHelper.setText("Hello World!", false);
transport.sendMessage(mimeMessage);
}
//Close the pool, usually when the application shutdown
smtpConnectionPool.close();
Nous utilisons communs apache piscine comme celui-ci 'essayer (ClosableSmtpConnection transport = connPool.borrowObject()) {...}'. Pensez-vous qu'il est possible de créer une stratégie d'éviction de pool pour ce pool, qui va expulser les transports utilisés plus de fois ou créés il y a un certain temps? Cela devrait assurer la fermeture des connexions longues ouvertes et également la fermeture des connexions SMTP lourdes utilisées. – Zveratko