KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > servicemix > components > email > MimeMailSender


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17 package org.apache.servicemix.components.email;
18
19 import org.apache.servicemix.components.util.OutBinding;
20 import org.springframework.mail.javamail.JavaMailSender;
21 import org.springframework.mail.javamail.MimeMessagePreparator;
22
23 import javax.jbi.JBIException;
24 import javax.jbi.messaging.MessageExchange;
25 import javax.jbi.messaging.NormalizedMessage;
26 import javax.mail.MessagingException JavaDoc;
27 import javax.mail.internet.MimeMessage JavaDoc;
28
29 /**
30  * An outbound component capable of sending MIME email via
31  * <a HREF="http://java.sun.com/products/javamail/">JavaMail</a>
32  *
33  * @version $Revision: 426415 $
34  */

35 public class MimeMailSender extends OutBinding {
36     private JavaMailSender sender;
37     private MimeMailMarshaler marshaler = new MimeMailMarshaler();
38
39     // Properties
40
//-------------------------------------------------------------------------
41
public JavaMailSender getSender() {
42         return sender;
43     }
44
45     public void setSender(JavaMailSender sender) {
46         this.sender = sender;
47     }
48
49     public MimeMailMarshaler getMarshaler() {
50         return marshaler;
51     }
52
53     public void setMarshaler(MimeMailMarshaler marshaler) {
54         this.marshaler = marshaler;
55     }
56
57
58     // Implementation methods
59
//-------------------------------------------------------------------------
60
protected void init() throws JBIException {
61         super.init();
62         if (sender == null) {
63             throw new JBIException("You must configure the sender property");
64         }
65     }
66
67     protected void process(final MessageExchange exchange, final NormalizedMessage message) throws Exception JavaDoc {
68         MimeMessagePreparator preparator = new MimeMessagePreparator() {
69             public void prepare(MimeMessage JavaDoc mimeMessage) throws MessagingException JavaDoc {
70                 marshaler.prepareMessage(mimeMessage, exchange, message);
71             }
72         };
73         sender.send(preparator);
74         done(exchange);
75     }
76 }
77
Popular Tags