From 872bdc6639b94f73ba7207bf5eb9094ebae16e96 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Tue, 16 Mar 2010 12:49:56 +0000 Subject: [PATCH] LMS-1449 Added send email with attachment method to IMailClient. SVN: 15162 --- .../cisd/common/mail/IMailClient.java | 15 +++++++++++++++ .../cisd/cina/dss/StorageProcessor.java | 19 +++---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/common/source/java/ch/systemsx/cisd/common/mail/IMailClient.java b/common/source/java/ch/systemsx/cisd/common/mail/IMailClient.java index 4abc0f3ebde..bfa06bbdd9a 100644 --- a/common/source/java/ch/systemsx/cisd/common/mail/IMailClient.java +++ b/common/source/java/ch/systemsx/cisd/common/mail/IMailClient.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.common.mail; +import javax.activation.DataHandler; + import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; /** @@ -38,4 +40,17 @@ public interface IMailClient public void sendMessage(String subject, String content, String replyToOrNull, From fromOrNull, String... recipients) throws EnvironmentFailureException; + /** + * Sends a mail with given <var>subject</var> and <var>content</var> to given + * <var>recipients</var>, includig the given <var>attachment</var> + * + * @param replyToOrNull reply-to part of the email header. Can be <code>null</code>. + * @param fromOrNull from part of the email header. Can be <code>null</code>. If specified - + * will overwrite the 'from' value specified for the client. + * @param recipients list of recipients (of type <code>Message.RecipientType.TO</code>) + */ + public void sendMessageWithAttachment(final String subject, final String content, + final String filename, final DataHandler attachmentContent, final String replyToOrNull, + final From fromOrNull, final String... recipients) throws EnvironmentFailureException; + } \ No newline at end of file diff --git a/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/StorageProcessor.java b/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/StorageProcessor.java index 2be388247f5..49407936743 100644 --- a/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/StorageProcessor.java +++ b/rtd_cina/source/java/ch/systemsx/cisd/cina/dss/StorageProcessor.java @@ -21,7 +21,6 @@ import java.util.Properties; import ch.systemsx.cisd.cina.dss.info.EntityRegistrationSuccessEmail; import ch.systemsx.cisd.common.mail.IMailClient; -import ch.systemsx.cisd.common.mail.MailClient; import ch.systemsx.cisd.etlserver.AbstractDelegatingStorageProcessor; import ch.systemsx.cisd.etlserver.IStorageProcessor; import ch.systemsx.cisd.etlserver.ITypeExtractor; @@ -75,21 +74,9 @@ public class StorageProcessor extends AbstractDelegatingStorageProcessor emailAddress = defaultEmailAddress; } - // WORKAROUND: The IMailClient interface is used in many places. I added the - // sendMessageWithAttachment method to the MailClient class, but I don't want to make a - // large, global change to introduce the method into the interface, so I do an instanceof - // test here. - if (mailClient instanceof MailClient) - { - ((MailClient) mailClient).sendMessageWithAttachment(successEmail.getSubject(), - successEmail.getContentMimeText(), successEmail - .getContentMimeAttachmentFileName(), successEmail - .getContentMimeAttachmentContent(), null, null, emailAddress); - } else - { - mailClient.sendMessage(successEmail.getSubject(), successEmail.getContentTextOnly(), - null, null, emailAddress); - } + mailClient.sendMessageWithAttachment(successEmail.getSubject(), successEmail + .getContentMimeText(), successEmail.getContentMimeAttachmentFileName(), + successEmail.getContentMimeAttachmentContent(), null, null, emailAddress); return answer; } -- GitLab