1 /************************************************************************
2 * Copyright (c) 2000-2006 The Apache Software Foundation. *
3 * All rights reserved. *
4 * ------------------------------------------------------------------- *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you *
6 * may not use this file except in compliance with the License. You *
7 * 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 *
14 * implied. See the License for the specific language governing *
15 * permissions and limitations under the License. *
16 ***********************************************************************/
17
18 package org.apache.james.smtpserver;
19
20 import org.apache.james.services.MailServer;
21 import org.apache.james.services.UsersRepository;
22
23 /***
24 * Provides a number of server-wide constant values to the
25 * SMTPHandlers
26 *
27 */
28 public interface SMTPHandlerConfigurationData {
29
30 /***
31 * Returns the service wide hello name
32 *
33 * @return the hello name
34 */
35 String getHelloName();
36
37 /***
38 * Returns the service wide reset length in bytes.
39 *
40 * @return the reset length
41 */
42 int getResetLength();
43
44 /***
45 * Returns the service wide maximum message size in bytes.
46 *
47 * @return the maximum message size
48 */
49 long getMaxMessageSize();
50
51 /***
52 * Returns whether relaying is allowed for the IP address passed.
53 *
54 * @param remoteIP the remote IP address in String form
55 * @return whether relaying is allowed
56 */
57 boolean isRelayingAllowed(String remoteIP);
58
59 /***
60 * Returns whether SMTP AUTH is active for this server, and
61 * necessary for the IP address passed.
62 *
63 * @param remoteIP the remote IP address in String form
64 * @return whether SMTP authentication is on
65 */
66 boolean isAuthRequired(String remoteIP);
67
68 /***
69 * Returns whether SMTP auth is active for this server.
70 *
71 * @return whether SMTP authentication is on
72 */
73 boolean isAuthRequired();
74
75 /***
76 * Returns whether the service validates the identity
77 * of its senders.
78 *
79 * @return whether SMTP authentication is on
80 */
81 boolean isVerifyIdentity();
82
83 /***
84 * Returns whether the remote server needs to send a HELO/EHLO
85 * of its senders.
86 *
87 * @return whether SMTP authentication is on
88 */
89 boolean useHeloEhloEnforcement();
90
91 /***
92 * Returns the MailServer interface for this service.
93 *
94 * @return the MailServer interface for this service
95 */
96 MailServer getMailServer();
97
98 /***
99 * Returns the UsersRepository for this service.
100 *
101 * @return the local users repository
102 */
103 UsersRepository getUsersRepository();
104
105 }