ERMailDelivery delivery = createMailDeliveryForMailMessage(mailMessage);
if (delivery != null) {
mailMessage.setState(ERCMailState.PROCESSING_STATE);
mailMessage.editingContext().saveChanges(); // This will throw if optimistic locking occurs
delivery.sendMail(true);
mailMessage.setState(ERCMailState.SENT_STATE);
mailMessage.setDateSent(new NSTimestamp());
if (shouldDeleteSentMail()) {