All Classes Files Functions Variables Enumerations Enumerator Groups Pages
Smtp.idl
Go to the documentation of this file.
1 /**
2  * @file Smtp.idl
3  * @brief Set SMTP Server.
4  *
5  * @author Dusan Juhas
6  *
7  * @copyright Copyright © 2011-2012 Kerio Technologies s.r.o.
8  */
9 
10 #import <kerio/web/idl/SharedStructures.idl>
11 #import <Users.idl> //ItemCountLimit
12 
13 
14 module kerio {
15 module jsonapi {
16 module admin {
17 
18 enum SmtpAuthentication {
19  Pop3Based, ///< POP3 authentication before SMTP
20  Auth ///< AUTH SMTP command
21 };
22 
23 /**
24  * SMTP Relay options
25  */
26 struct Relay {
27  boolean isRestricted; ///< is relay restricted? false == open relay enabled
28  string ipAddressGroupName; ///< output only: name of IP group from which open relay is enabled
29  kerio::web::KId ipAddressGroupId; ///< ID of IP group from which open relay is enabled
30  boolean authenticateOutgoing; ///< client must authenticate before sending a message
31  ItemCountLimit forwardPop3authentication; ///< client can be authenticated by POP3 before SMTP relay for certain number of minutes
32  boolean hideLocalIpInRcv; ///< hide local IP address in receive headers
33 };
34 
36  boolean isRequired; ///< is authentication required?
37  string userName; ///< user name for relay server authentication
38  string password; ///< password for relay server authentication
39  SmtpAuthentication authType; ///< type of authentication
40 };
41 
42 struct SmtpDelivery {
43  boolean isUsedRelay; ///< true = SMTP server is used / false = direct use of MX record
44  string hostName; ///< relay server hostname
45  long port; ///< relay server port
46  RelayAuthentication authentication; ///< relay server authentication parameters
47 };
48 
49 struct IpLimit {
50  ItemCountLimit maximumFromIp; ///< maximum number of messages per hour from 1 IP address
51  ItemCountLimit maximumConnections; ///< maximum number of concurrent SMTP connections from 1 IP address
52  ItemCountLimit maximumUnknowns; ///< maximum number of unknown recipients
53  string ipAddressGroupName; ///< output only: name of IP group on which limits are NOT applied
54  kerio::web::KId ipAddressGroupId; ///< ID of IP group on which limits are NOT applied
55 };
56 
58  Relay relayControl; ///< relay control options
59  IpLimit ipBasedLimit; ///< limits based on IP address
60  boolean blockUnknownDns; ///< block is sender's mail domain was not found in DNS
61  boolean verifyClientRDnsEntry; ///< block if client's IP address has no reverse DNS entry (PTR)
62  boolean requireLocalDomainSenderAuth; ///< require SMTP authentication if the sender's address is from a local domain
63  ItemCountLimit maximumRecipients; ///< maximum number of recipients in 1 message
64  ItemCountLimit maximumSmtpFailures; ///< maximum number of failed commands in 1 SMTP session
65  kerio::web::SizeLimit messageSize; ///< limit for incomming SMTP message size
66  long readerHops; ///< maximum number of accepted received headers (hops)
67  SmtpDelivery smtpOptions; ///< SMTP delivery options
68  boolean useSSL; ///< use SSL if supported by remote SMTP server
69  long maximumThreads; ///< maximum number of delivery threads
70  TimeLimit retryInterval; ///< delivery retry interval
71  TimeLimit bounceInterval; ///< bounce the message to the sender if not delivered in defined time
72  TimeLimit warningInterval; ///< warn sender if a message is not delivered within define time
73  string reportLanguage; ///< 2 char abbreviation; we don't support reports added by user
74 };
75 
76 interface Smtp {
77 
78  /**
79  * Obtain SMTP server settings.
80  *
81  * @param server - SMTP settings
82  */
83  void get(out SmtpServerSettings server);
84 
85  /**
86  * Change SMTP server settings.
87  *
88  * @param server - SMTP settings
89  */
90  void set(in SmtpServerSettings server);
91 };
92 
93 }; }; };//end of namespace