summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/mail/XMailService.idl
blob: ec9fda50cfa68b4fcdf67b70e3e3cf5fae6a58ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 * 
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/

#ifndef __com_sun_star_mail_XMailService_idl__
#define __com_sun_star_mail_XMailService_idl__

#ifndef __com_sun_star_uno_XInterface_idl__ 
#include <com/sun/star/uno/XInterface.idl>
#endif

#ifndef __com_sun_star_mail_XAuthenticator_idl__
#include <com/sun/star/mail/XAuthenticator.idl>
#endif

#ifndef __com_sun_star_auth_AuthenticationFailedException_idl__
#include <com/sun/star/auth/AuthenticationFailedException.idl>
#endif

#ifndef __com_sun_star_io_AlreadyConnectedException_idl__
#include <com/sun/star/io/AlreadyConnectedException.idl>
#endif

#ifndef __com_sun_star_io_NotConnectedException_idl__
#include <com/sun/star/io/NotConnectedException.idl>
#endif

#ifndef __com_sun_star_io_UnknownHostException_idl__
#include <com/sun/star/io/UnknownHostException.idl>
#endif

#ifndef __com_sun_star_io_NoRouteToHostException_idl__
#include <com/sun/star/io/NoRouteToHostException.idl>
#endif

#ifndef __com_sun_star_io_ConnectException_idl__
#include <com/sun/star/io/ConnectException.idl>
#endif

#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 
#include <com/sun/star/lang/IllegalArgumentException.idl>
#endif

#ifndef __com_sun_star_mail_XConnectionListener_idl__
#include <com/sun/star/mail/XConnectionListener.idl>
#endif

#ifndef __com_sun_star_mail_MailException_idl__
#include <com/sun/star/mail/MailException.idl>
#endif

#ifndef __com_sun_star_uno_XCurrentContext_idl__ 
#include <com/sun/star/uno/XCurrentContext.idl>
#endif


module com { module sun { module star { module mail {

/**
   Represents a mail server abstraction. 
      
   @since OOo 2.0.0
 */
interface XMailService: ::com::sun::star::uno::XInterface {
       
    /**
        Returns all connection types which are supported to 
        connect to the mail service. At least support insecure 
        connections must be supported. Currently defined 
        connection types are (the values should be handled
        case insensitive):
        "Insecure" - insecure connections 
        "SSL" - Secure Socket Layer 2.0/3.0 based connection
        
        @returns 
        a sequence of supported connection types.       
    */
    sequence<string> getSupportedConnectionTypes();
                    
    /** 
        Register a connection listener.
        
        @param xListener
        [in] a listener that will be informed about connection events.
        
        @see com::sun::star::mail::XConnectionListener
    */
    void addConnectionListener([in] XConnectionListener xListener);
      
    /**
        Unregister a connection listener.
        
        @param xListener
        [in] a listener that no longer need to be informed about connection events.
        
        @see com::sun::star::mail::XConnectionListener
    */
    void removeConnectionListener([in] XConnectionListener xListener);

    /**
        Return the context of the current connection. The context
        contains information like the server name, port, connection type
        etc.
        
        @precond 
        <code>isConnected</code> returns true.
        
        @returns
        the current connection context.
        
        @throws com::sun::star::io::NotConnectedException
        if no connection is currently established.
        
        @see com::sun::star::mail::connectUser
        @see com::sun::star::io::NotConnectedException
    */
    com::sun::star::uno::XCurrentContext getCurrentConnectionContext()
        raises(com::sun::star::io::NotConnectedException);
                          
    /** 
        Connect to a mail service. Only one connection to a mail service
        can be established at a time. 
        
        @param xConnectionContext
        [in] an interface used to query for connection related information.
        The context must contain the following values:
        "ServerName" of type "string", "Port" of type "long", "ConnectionType"
        of type "string". A list of supported connection types can be queried
        using <code>getSupportedConnectionTypes</code>.
        
        @param xAuthenticator
        [in] an interface used to query for the necessary user information
        needed to login to the mail server. If no authentication is required
        the xAuthenticator must return an empty user name and an empty password.
        
        @throws com::sun::star::lang::IllegalArgumentException
        if the provided connection context contains invalid values or 
        misses required connection parameters.
        
        @throws com::sun::star::io::AlreadyConnectedException
        on a try to connect to an already connect mail server.
        
        @throws com::sun::star::io::UnknownHostException  
        usually if the IP address of the mail server could not be
        determined. Possible causes are a broken network connection,
        a wrong server name, an unreachable DNS server, etc.
              
        @throws com::sun::star::io::NoRouteToHostException        
        if an error occurred to connect to the remote mail server.
        Typically the remote mail server cannot be reach because of an 
        intervening firewall, or if an intermediate router is down, 
        the network connection is broken, etc.
        
        @throws com::sun::star::io::ConnectException
        if an error occurred while attempting to connect to the remote
        mail server. Typically the connection was refused remotely, 
        because the mail server is not listening on the remote address/port.
        
        @throws com::sun::star::auth::AuthenticationException 
        if the specified user could not be logged in. 
                
        @throws com::sun::star::mail::MailException
        for other errors during login.        
        
        @see com::sun::star::uno::XCurrentContext
        @see com::sun::star::mail::XAuthenticator
        @see com::sun::star::lang::IllegalArgumentException
        @see com::sun::star::io::AlreadyConnectedException                        
        @see com::sun::star::io::UnknownHostException
        @see com::sun::star::io::NoRouteToHostException
        @see com::sun::star::io::ConnectException
        @see com::sun::star::auth::AuthenticationException         
        @see com::sun::star::mail::IllegalStateException
        @see com::sun::star::mail::MailException
    */    
    void connect([in] com::sun::star::uno::XCurrentContext xConnectionContext, [in] XAuthenticator xAuthenticator)
        raises(com::sun::star::lang::IllegalArgumentException,
               com::sun::star::io::AlreadyConnectedException, 
               com::sun::star::io::UnknownHostException,
               com::sun::star::io::NoRouteToHostException,
               com::sun::star::io::ConnectException,
               com::sun::star::auth::AuthenticationFailedException, 
               com::sun::star::mail::MailException);
         
    /**
        Disconnect from a mail service.
        
        @throws com::sun::star::mail::MailException
        if errors occur during disconnecting.
    */
    void disconnect() 
        raises(com::sun::star::mail::MailException);
    
    /**
        Returns whether a connection to a mail service 
        currently exist or not.
        
        @returns
        <TRUE/> if a connection to a mail service is established.
    */
    boolean isConnected();             
};

}; }; }; };

#endif