1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.james.smtpserver.core;
23
24 import org.apache.avalon.framework.logger.AbstractLogEnabled;
25 import org.apache.avalon.framework.configuration.Configuration;
26 import org.apache.avalon.framework.configuration.Configurable;
27 import org.apache.avalon.framework.configuration.ConfigurationException;
28 import org.apache.james.smtpserver.MessageHandler;
29 import org.apache.james.smtpserver.SMTPSession;
30
31 import javax.mail.internet.MimeMessage;
32
33
34
35
36
37 public class SetMimeHeaderHandler
38 extends AbstractLogEnabled
39 implements MessageHandler, Configurable {
40
41
42
43
44 private String headerName;
45 private String headerValue;
46
47
48
49
50 public void configure(Configuration handlerConfiguration) throws ConfigurationException {
51
52 Configuration configuration = handlerConfiguration.getChild("headername", false);
53 if(configuration != null) {
54 setHeaderName(configuration.getValue());
55 }
56
57 configuration = handlerConfiguration.getChild("headervalue", false);
58 if(configuration != null) {
59 setHeaderValue(configuration.getValue());
60 }
61 }
62
63
64
65
66
67
68 public void setHeaderName(String headerName) {
69 this.headerName = headerName;
70 }
71
72
73
74
75
76
77 public void setHeaderValue(String headerValue) {
78 this.headerValue = headerValue;
79 }
80
81
82
83
84
85 public void onMessage(SMTPSession session) {
86 try {
87 MimeMessage message = session.getMail().getMessage ();
88
89
90 if(headerName != null) {
91 message.setHeader(headerName, headerValue);
92 message.saveChanges();
93 }
94
95 } catch (javax.mail.MessagingException me) {
96 getLogger().error(me.getMessage());
97 }
98 }
99
100
101
102 }