1 /****************************************************************
2 * Licensed to the Apache Software Foundation (ASF) under one *
3 * or more contributor license agreements. See the NOTICE file *
4 * distributed with this work for additional information *
5 * regarding copyright ownership. The ASF licenses this file *
6 * to you under the Apache License, Version 2.0 (the *
7 * "License"); you may not use this file except in compliance *
8 * with the License. You may obtain a copy of the License at *
9 * *
10 * http://www.apache.org/licenses/LICENSE-2.0 *
11 * *
12 * Unless required by applicable law or agreed to in writing, *
13 * software distributed under the License is distributed on an *
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15 * KIND, either express or implied. See the License for the *
16 * specific language governing permissions and limitations *
17 * under the License. *
18 ****************************************************************/
19
20
21
22 package org.apache.james.smtpserver;
23
24 import org.apache.james.api.user.UsersRepository;
25 import org.apache.james.services.MailServer;
26
27 /**
28 * Provides a number of server-wide constant values to the
29 * SMTPHandlers
30 *
31 */
32 public interface SMTPHandlerConfigurationData {
33
34 /**
35 * Returns the service wide hello name
36 *
37 * @return the hello name
38 */
39 String getHelloName();
40
41 /**
42 * Returns the service wide reset length in bytes.
43 *
44 * @return the reset length
45 */
46 int getResetLength();
47
48 /**
49 * Returns the service wide maximum message size in bytes.
50 *
51 * @return the maximum message size
52 */
53 long getMaxMessageSize();
54
55 /**
56 * Returns whether relaying is allowed for the IP address passed.
57 *
58 * @param remoteIP the remote IP address in String form
59 * @return whether relaying is allowed
60 */
61 boolean isRelayingAllowed(String remoteIP);
62
63 /**
64 * Returns whether SMTP AUTH is active for this server, and
65 * necessary for the IP address passed.
66 *
67 * @param remoteIP the remote IP address in String form
68 * @return whether SMTP authentication is on
69 */
70 boolean isAuthRequired(String remoteIP);
71
72 /**
73 * Returns whether SMTP auth is active for this server.
74 *
75 * @return whether SMTP authentication is on
76 */
77 boolean isAuthRequired();
78
79 /**
80 * Returns whether the service validates the identity
81 * of its senders.
82 *
83 * @return whether SMTP authentication is on
84 */
85 boolean isVerifyIdentity();
86
87 /**
88 * Returns whether the remote server needs to send a HELO/EHLO
89 * of its senders.
90 *
91 * @return whether SMTP authentication is on
92 */
93 boolean useHeloEhloEnforcement();
94
95
96 /**
97 * Return the SMTPGreeting which should used.
98 *
99 * @return the SMTPGreeting
100 */
101 String getSMTPGreeting();
102
103 /**
104 * Returns the MailServer interface for this service.
105 *
106 * @return the MailServer interface for this service
107 */
108 MailServer getMailServer();
109
110 /**
111 * Returns the UsersRepository for this service.
112 *
113 * @return the local users repository
114 */
115 UsersRepository getUsersRepository();
116
117 /**
118 * Return wheter the mailserver will accept addresses without brackets enclosed.
119 *
120 * @return true or false
121 */
122 boolean useAddressBracketsEnforcement();
123
124 }