1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef __com_sun_star_mail_XMailServer_idl__
25#define __com_sun_star_mail_XMailServer_idl__
26
27#ifndef __com_sun_star_uno_XInterface_idl__
28#include <com/sun/star/uno/XInterface.idl>
29#endif
30
31#ifndef __com_sun_star_mail_XAuthenticator_idl__
32#include <com/sun/star/mail/XAuthenticator.idl>
33#endif
34
35#ifndef __com_sun_star_mail_XMailMessage_idl__
36#include <com/sun/star/mail/XMailMessage.idl>
37#endif
38
39#ifndef __com_sun_star_auth_AuthenticationFailedException_idl__
40#include <com/sun/star/auth/AuthenticationFailedException.idl>
41#endif
42
43#ifndef __com_sun_star_io_AlreadyConnectedException_idl__
44#include <com/sun/star/io/AlreadyConnectedException.idl>
45#endif
46
47#ifndef __com_sun_star_io_NotConnectedException_idl__
48#include <com/sun/star/io/NotConnectedException.idl>
49#endif
50
51#ifndef __com_sun_star_io_UnknownHostException_idl__
52#include <com/sun/star/io/UnknownHostException.idl>
53#endif
54
55#ifndef __com_sun_star_io_NoRouteToHostException_idl__
56#include <com/sun/star/io/NoRouteToHostException.idl>
57#endif
58
59#ifndef __com_sun_star_io_ConnectException_idl__
60#include <com/sun/star/io/ConnectException.idl>
61#endif
62
63#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
64#include <com/sun/star/lang/IllegalArgumentException.idl>
65#endif
66
67#ifndef __com_sun_star_ucb_InteractiveIOException_idl__
68#include <com/sun/star/ucb/InteractiveIOException.idl>
69#endif
70
71#ifndef __com_sun_star_mail_MailException_idl__
72#include <com/sun/star/mail/MailException.idl>
73#endif
74
75#ifndef __com_sun_star_mail_SendMailMessageFailedException_idl__
76#include <com/sun/star/mail/SendMailMessageFailedException.idl>
77#endif
78
79#ifndef __com_sun_star_mail_XConnectionListener_idl__
80#include <com/sun/star/mail/XConnectionListener.idl>
81#endif
82
83#ifndef __com_sun_star_datatransfer_UnsupportedFlavorException_idl__
84#include <com/sun/star/datatransfer/UnsupportedFlavorException.idl>
85#endif
86
87module com { module sun { module star { module mail {
88
89/**
90   Represents a mail server abstraction.
91
92   @see com::sun::star::mail::XMailMessage
93
94   @since OpenOffice 2.0
95 */
96interface XMailServer: ::com::sun::star::uno::XInterface {
97
98    /**
99        The complete domain name of the mail server.
100    */
101    [attribute, readonly] string Name;
102
103    /**
104        The port number that will be used to connect to the mail server.
105        If no port number has been set the default port number 25 will
106        be used.
107    */
108    [attribute] long Port;
109
110    /**
111        Returns all connection types which are supported by the
112        mail server. Possible connection types are for instance
113        secure connections like 'SSL' or 'TLS'.
114
115        @returns
116        a sequence of supported connection types.
117    */
118    sequence<string> getSupportedConnectionTypes();
119
120    /**
121        Set the connection type that will be used to connect to the
122        mail server. The supported connection types may be queried
123        using <code>getSupportedConnectionTypes()</code>.
124        If no connection types has explicitly been set the default
125        connection type will be used.
126
127        @param sConnectionType
128        [in] identifies the connection that should be used to connect
129        to the mail server.
130
131        @throws com::sun::star::lang::IllegalArgumentException
132        if the provided connection type is not supported.
133
134        @see getSupportedConnectionTypes
135        @see isConnectionTypeSupported
136    */
137    void setConnectionType([in] string sConnectionType)
138        raises (com::sun::star::lang::IllegalArgumentException);
139
140    /**
141        Allow a client to query if a certain connection type is
142        supported.
143
144        @param sConnectionType
145        [in] query if a certain connection type is supported.
146
147        @returns
148        <TRUE/> if the specified connection type is supported.
149    */
150    boolean isConnectionTypeSupported([in] string sConnectionType);
151
152    /**
153        Register a connection listener.
154
155        @param xListener
156        [in] a listener that will be informed about connection events.
157
158        @see com::sun::star::mail::XConnectionListener
159    */
160    void addConnectionListener([in] XConnectionListener xListener);
161
162    /**
163        Unregister a connection listener.
164
165        @param xListener
166        [in] a listener that no longer need to be informed about connection events.
167
168        @see com::sun::star::mail::XConnectionListener
169    */
170    void removeConnectionListener([in] XConnectionListener xListener);
171
172    /**
173        Login a user to the mail server. Only one user may logged in
174        at a time. An attempt to login while another user is logged in
175        causes an exception to be thrown.
176
177        @param xAuthenticator
178        [in] an interface used to query for the necessary user information
179        needed to login to the mail server.
180
181        @throws com::sun::star::io::AlreadyConnectedException
182        on a try to connect to an already connect mail server.
183
184        @throws com::sun::star::io::UnknownHostException
185        usually if the IP address of the mail server could not be
186        determined. Possible causes are a broken network connection,
187        a wrong server name, an unreachable DNS server, etc.
188
189        @throws com::sun::star::io::NoRouteToHostException
190        if an error occured to connect to the remote mail server.
191        Typically the remote mail server cannot be reach because of an
192        intervening firewall, or if an intermediate router is down,
193        the network connection is broken, etc.
194
195        @throws com::sun::star::io::ConnectException
196        if an error occured while attempting to connect to the remote
197        mail server. Typically the connection was refused remotely,
198        because the mail server is not listening on the remote address/port.
199
200        @throws com::sun::star::auth::AuthenticationException
201        if the specified user could not be logged in.
202
203        @throws com::sun::star::mail::IllegalStateException
204        if a user is currently logged in.
205
206        @throws com::sun::star::mail::MailException
207        for other errors during login.
208
209        @see com::sun::star::mail::XAuthenticator
210        @see com::sun::star::io::AlreadyConnectedException
211        @see com::sun::star::io::UnknownHostException
212        @see com::sun::star::io::NoRouteToHostException
213        @see com::sun::star::io::ConnectException
214        @see com::sun::star::auth::AuthenticationException
215        @see com::sun::star::mail::IllegalStateException
216        @see com::sun::star::mail::MailException
217    */
218    void connectUser([in] XAuthenticator xAuthenticator)
219        raises(com::sun::star::io::AlreadyConnectedException,
220               com::sun::star::io::UnknownHostException,
221               com::sun::star::io::NoRouteToHostException,
222               com::sun::star::io::ConnectException,
223               com::sun::star::auth::AuthenticationFailedException,
224               com::sun::star::mail::MailException);
225
226    /**
227        Logoff the currently logged in user.
228
229        @throws com::sun::star::mail::MessagingException
230        if errors occur during logoff.
231    */
232    void disconnectUser()
233        raises(com::sun::star::mail::MailException);
234
235    /**
236        Returns whether a user is currently logged in to the mail server or not.
237
238        @returns
239        <TRUE/> if a user is currently logged in to the mail server.
240    */
241    boolean isUserConnected();
242
243    /**
244        Send a mail message to its recipients.
245
246        @throws com::sun::star::io::NotConnectedException
247        if no user is currently connected to the mail server.
248
249        @throws com::sun::star::mail::SendMailMessageFailedException
250        if the message could not be sent because of invalid recipient
251        addresses. The e-mail addresses of recipients have to conform to
252        <a href="http://www.ietf.org/rfc/rfc822.txt">RFC&nbsp;822</a>.
253
254        @throws com::sun::star::mail::MailException
255        is thrown on other errors that may happen during sending.
256        A possible reason may be for instance that a file attachment
257        specified in a mail message could not be found or accessed.
258
259        @throws com::sun::star::datatransfer::UnsupportedFlavorException
260        is thrown when the body of the mail message is provided in an
261        unsupported mime content type or may be thrown if one of the file
262        attachments specifies an unspupported mime content type.
263
264        @see com::sun::star::io::NotConnectedExceptionException
265        @see com::sun::star::mail::SendMailMessageFailedException
266        @see com::sun::star::mail::MailException
267        @see com::sun::star::datatransfer::UnsupportedFlavorException
268    */
269    void sendMailMessage([in] XMailMessage xMailMessage)
270        raises(com::sun::star::io::NotConnectedException, com::sun::star::mail::SendMailMessageFailedException, com::sun::star::mail::MailException, com::sun::star::datatransfer::UnsupportedFlavorException);
271};
272
273}; }; }; };
274
275#endif
276