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 }