Commenting, cleanup, close our Transport.
This works, I'm shipping it and hopefully I'll get some answers.
This commit is contained in:
@@ -137,12 +137,19 @@ public class MailUtil
|
|||||||
message.saveChanges();
|
message.saveChanges();
|
||||||
Address[] recips = message.getAllRecipients();
|
Address[] recips = message.getAllRecipients();
|
||||||
if (recips.length == 0) {
|
if (recips.length == 0) {
|
||||||
|
log.info("Not sending mail to zero recipients",
|
||||||
|
"subject", subject, "message", message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Transport t = _defaultSession.getTransport(recips[0]);
|
Transport t = _defaultSession.getTransport(recips[0]);
|
||||||
t.addTransportListener(_listener);
|
try {
|
||||||
t.connect();
|
t.addTransportListener(_listener);
|
||||||
t.sendMessage(message, recips);
|
t.connect();
|
||||||
|
t.sendMessage(message, recips);
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
t.close();
|
||||||
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String errmsg = "Failure sending mail [from=" + sender +
|
String errmsg = "Failure sending mail [from=" + sender +
|
||||||
@@ -163,9 +170,12 @@ public class MailUtil
|
|||||||
return new MimeMessage(_defaultSession);
|
return new MimeMessage(_defaultSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create our default session if not already created.
|
||||||
|
*/
|
||||||
protected static void checkCreateSession ()
|
protected static void checkCreateSession ()
|
||||||
{
|
{
|
||||||
if (_defaultSession == null) {
|
if (_defaultSession == null) { // no need to sync
|
||||||
Properties props = System.getProperties();
|
Properties props = System.getProperties();
|
||||||
if (props.getProperty("mail.smtp.host") == null) {
|
if (props.getProperty("mail.smtp.host") == null) {
|
||||||
props.put("mail.smtp.host", "localhost");
|
props.put("mail.smtp.host", "localhost");
|
||||||
@@ -174,18 +184,30 @@ public class MailUtil
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** The session for sending our messages. */
|
||||||
protected static Session _defaultSession;
|
protected static Session _defaultSession;
|
||||||
|
|
||||||
|
/** Listens to mail sending transport events. */
|
||||||
protected static TransportListener _listener = new TransportListener()
|
protected static TransportListener _listener = new TransportListener()
|
||||||
{
|
{
|
||||||
public void messageDelivered (TransportEvent event) {
|
@Override public void messageDelivered (TransportEvent event) {
|
||||||
log.info("messageDelivered: " + event);
|
log.debug("messageDelivered: " + event);
|
||||||
}
|
}
|
||||||
public void messageNotDelivered (TransportEvent event) {
|
@Override public void messageNotDelivered (TransportEvent event) {
|
||||||
log.info("messageNotDelivered: " + event);
|
logDeliveryError("messageNotDelivered", event);
|
||||||
}
|
}
|
||||||
public void messagePartiallyDelivered (TransportEvent event) {
|
@Override public void messagePartiallyDelivered (TransportEvent event) {
|
||||||
log.info("messagePartiallyDelivered: " + event);
|
logDeliveryError("messagePartiallyDelivered", event);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Log the details of a delivery error.
|
||||||
|
*/
|
||||||
|
protected void logDeliveryError (String what, TransportEvent event)
|
||||||
|
{
|
||||||
|
log.warning(what + ": " + event,
|
||||||
|
"invalidAddresses", event.getInvalidAddresses(),
|
||||||
|
"validUnsentAddresses", event.getValidUnsentAddresses(),
|
||||||
|
"message", event.getMessage());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user