AspirinInternal.getLogger().info("DeliveryThread ({}).deliver(): Starting mail delivery. qi={}", new Object[]{getName(),dCtx});
String[] handlerList = new String[]{
ResolveHost.class.getCanonicalName(),
SendMessage.class.getCanonicalName()
};
QueueInfo qInfo = dCtx.getQueueInfo();
for( String handlerName : handlerList )
{
try {
AspirinInternal.getDeliveryManager().getDeliveryHandler(handlerName).handle(dCtx);
} catch (DeliveryException de) {
qInfo.setResultInfo(de.getMessage());
AspirinInternal.getLogger().info("DeliveryThread ({}).deliver(): Mail delivery failed: {}. qi={}", new Object[]{getName(),qInfo.getResultInfo(),dCtx});
if( de.isPermanent() )
qInfo.setState(DeliveryState.FAILED);
else
qInfo.setState(DeliveryState.QUEUED);
return;
}
}
if( qInfo.hasState(DeliveryState.IN_PROGRESS) )
{
if( qInfo.getResultInfo() == null )
qInfo.setResultInfo("250 OK");
AspirinInternal.getLogger().info("DeliveryThread ({}).deliver(): Mail delivery success: {}. qi={}", new Object[]{getName(),qInfo.getResultInfo(),dCtx});
qInfo.setState(DeliveryState.SENT);
}
}