目前我使用Commons Email發送電子郵件,但是我一直無法找到共享發送的電子郵件之間smtp連接的方法。我有一個像下面的代碼:Apache Commons電子郵件和重複使用SMTP連接
Email email = new SimpleEmail();
email.setFrom("[email protected]");
email.addTo("[email protected]");
email.setSubject("Hello Example");
email.setMsg("Hello Example");
email.setSmtpPort(25);
email.setHostName("localhost");
email.send();
這是非常具有可讀性,但速度很慢,當我做大量的消息,我相信這是重新連接每條消息的開銷。所以我使用下面的代碼對它進行了分析,發現使用重複使用Transport可以使事情快三倍。
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
Session mailSession = Session.getDefaultInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect("localhost", 25, null, null);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress("[email protected]"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
message.setSubject("Hello Example");
message.setContent("Hello Example", "text/html; charset=ISO-8859-1");
transport.sendMessage(message, message.getAllRecipients());
所以我想知道是否有一種方法可以使Commons Email重用爲多個電子郵件發送的SMTP連接?我更喜歡Commons Email API,但表現令人痛苦。
感謝, 贖金