1*b1cdbd2cSJim Jagielski/************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_mail_XMailService_idl__ 25*b1cdbd2cSJim Jagielski#define __com_sun_star_mail_XMailService_idl__ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__ 28*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl> 29*b1cdbd2cSJim Jagielski#endif 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_mail_XAuthenticator_idl__ 32*b1cdbd2cSJim Jagielski#include <com/sun/star/mail/XAuthenticator.idl> 33*b1cdbd2cSJim Jagielski#endif 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_auth_AuthenticationFailedException_idl__ 36*b1cdbd2cSJim Jagielski#include <com/sun/star/auth/AuthenticationFailedException.idl> 37*b1cdbd2cSJim Jagielski#endif 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_io_AlreadyConnectedException_idl__ 40*b1cdbd2cSJim Jagielski#include <com/sun/star/io/AlreadyConnectedException.idl> 41*b1cdbd2cSJim Jagielski#endif 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_io_NotConnectedException_idl__ 44*b1cdbd2cSJim Jagielski#include <com/sun/star/io/NotConnectedException.idl> 45*b1cdbd2cSJim Jagielski#endif 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_io_UnknownHostException_idl__ 48*b1cdbd2cSJim Jagielski#include <com/sun/star/io/UnknownHostException.idl> 49*b1cdbd2cSJim Jagielski#endif 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_io_NoRouteToHostException_idl__ 52*b1cdbd2cSJim Jagielski#include <com/sun/star/io/NoRouteToHostException.idl> 53*b1cdbd2cSJim Jagielski#endif 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_io_ConnectException_idl__ 56*b1cdbd2cSJim Jagielski#include <com/sun/star/io/ConnectException.idl> 57*b1cdbd2cSJim Jagielski#endif 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 60*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/IllegalArgumentException.idl> 61*b1cdbd2cSJim Jagielski#endif 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_mail_XConnectionListener_idl__ 64*b1cdbd2cSJim Jagielski#include <com/sun/star/mail/XConnectionListener.idl> 65*b1cdbd2cSJim Jagielski#endif 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_mail_MailException_idl__ 68*b1cdbd2cSJim Jagielski#include <com/sun/star/mail/MailException.idl> 69*b1cdbd2cSJim Jagielski#endif 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XCurrentContext_idl__ 72*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XCurrentContext.idl> 73*b1cdbd2cSJim Jagielski#endif 74*b1cdbd2cSJim Jagielski 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module mail { 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski/** 79*b1cdbd2cSJim Jagielski Represents a mail server abstraction. 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski @since OpenOffice 2.0 82*b1cdbd2cSJim Jagielski */ 83*b1cdbd2cSJim Jagielskiinterface XMailService: ::com::sun::star::uno::XInterface { 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski /** 86*b1cdbd2cSJim Jagielski Returns all connection types which are supported to 87*b1cdbd2cSJim Jagielski connect to the mail service. At least support insecure 88*b1cdbd2cSJim Jagielski connections must be supported. Currently defined 89*b1cdbd2cSJim Jagielski connection types are (the values should be handled 90*b1cdbd2cSJim Jagielski case insensitive): 91*b1cdbd2cSJim Jagielski "Insecure" - insecure connections 92*b1cdbd2cSJim Jagielski "Ssl" - Secure Socket Layer 2.0/3.0 based connection 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski @returns 95*b1cdbd2cSJim Jagielski a sequence of supported connection types. 96*b1cdbd2cSJim Jagielski */ 97*b1cdbd2cSJim Jagielski sequence<string> getSupportedConnectionTypes(); 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski /** 100*b1cdbd2cSJim Jagielski Register a connection listener. 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski @param xListener 103*b1cdbd2cSJim Jagielski [in] a listener that will be informed about connection events. 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski @see com::sun::star::mail::XConnectionListener 106*b1cdbd2cSJim Jagielski */ 107*b1cdbd2cSJim Jagielski void addConnectionListener([in] XConnectionListener xListener); 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski /** 110*b1cdbd2cSJim Jagielski Unregister a connection listener. 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski @param xListener 113*b1cdbd2cSJim Jagielski [in] a listener that no longer need to be informed about connection events. 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski @see com::sun::star::mail::XConnectionListener 116*b1cdbd2cSJim Jagielski */ 117*b1cdbd2cSJim Jagielski void removeConnectionListener([in] XConnectionListener xListener); 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski /** 120*b1cdbd2cSJim Jagielski Return the context of the current connnection. The context 121*b1cdbd2cSJim Jagielski contains information like the server name, port, connection type 122*b1cdbd2cSJim Jagielski etc. 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski @precond 125*b1cdbd2cSJim Jagielski <code>isConnected</code> returns true. 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski @returns 128*b1cdbd2cSJim Jagielski the current connection context. 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski @throws com::sun::star::io::NotConnectedException 131*b1cdbd2cSJim Jagielski if no connection is currently established. 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski @see com::sun::star::mail::connectUser 134*b1cdbd2cSJim Jagielski @see com::sun::star::io::NotConnectedException 135*b1cdbd2cSJim Jagielski */ 136*b1cdbd2cSJim Jagielski com::sun::star::uno::XCurrentContext getCurrentConnectionContext() 137*b1cdbd2cSJim Jagielski raises(com::sun::star::io::NotConnectedException); 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski /** 140*b1cdbd2cSJim Jagielski Connect to a mail service. Only one connection to a mail service 141*b1cdbd2cSJim Jagielski can be established at a time. 142*b1cdbd2cSJim Jagielski 143*b1cdbd2cSJim Jagielski @param xConnectionContext 144*b1cdbd2cSJim Jagielski [in] an interface used to query for connection related information. 145*b1cdbd2cSJim Jagielski The context must contain the following values: 146*b1cdbd2cSJim Jagielski <ul> 147*b1cdbd2cSJim Jagielski <li> 148*b1cdbd2cSJim Jagielski <b>ServerName</b> of type 'string'. 149*b1cdbd2cSJim Jagielski </li> 150*b1cdbd2cSJim Jagielski <li> 151*b1cdbd2cSJim Jagielski <b>Port</b> of type 'long'. 152*b1cdbd2cSJim Jagielski </li> 153*b1cdbd2cSJim Jagielski <li> 154*b1cdbd2cSJim Jagielski <b>ConnectionType</b> of type 'string'. 155*b1cdbd2cSJim Jagielski A list of supported connection types can be queried using 156*b1cdbd2cSJim Jagielski <member>getSupportedConnectionTypes</member>. 157*b1cdbd2cSJim Jagielski </li> 158*b1cdbd2cSJim Jagielski <li> 159*b1cdbd2cSJim Jagielski <b>Timeout</b> of type 'long' (Optional). 160*b1cdbd2cSJim Jagielski Specifies a timeout in seconds for blocking operations, 161*b1cdbd2cSJim Jagielski like the connection attempt. 162*b1cdbd2cSJim Jagielski </li> 163*b1cdbd2cSJim Jagielski </ul> 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski @param xAuthenticator 166*b1cdbd2cSJim Jagielski [in] an interface used to query for the necessary user information 167*b1cdbd2cSJim Jagielski needed to login to the mail server. If no authentication is required 168*b1cdbd2cSJim Jagielski the xAuthenticator must return an empty user name and an empty password. 169*b1cdbd2cSJim Jagielski 170*b1cdbd2cSJim Jagielski @throws com::sun::star::lang::IllegalArgumentException 171*b1cdbd2cSJim Jagielski if the provided connection context contains invalid values or 172*b1cdbd2cSJim Jagielski misses required connection parameters. 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski @throws com::sun::star::io::AlreadyConnectedException 175*b1cdbd2cSJim Jagielski on a try to connect to an already connect mail server. 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski @throws com::sun::star::io::UnknownHostException 178*b1cdbd2cSJim Jagielski usually if the IP address of the mail server could not be 179*b1cdbd2cSJim Jagielski determined. Possible causes are a broken network connection, 180*b1cdbd2cSJim Jagielski a wrong server name, an unreachable DNS server, etc. 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski @throws com::sun::star::io::NoRouteToHostException 183*b1cdbd2cSJim Jagielski if an error occured to connect to the remote mail server. 184*b1cdbd2cSJim Jagielski Typically the remote mail server cannot be reach because of an 185*b1cdbd2cSJim Jagielski intervening firewall, or if an intermediate router is down, 186*b1cdbd2cSJim Jagielski the network connection is broken, etc. 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski @throws com::sun::star::io::ConnectException 189*b1cdbd2cSJim Jagielski if an error occured while attempting to connect to the remote 190*b1cdbd2cSJim Jagielski mail server. Typically the connection was refused remotely, 191*b1cdbd2cSJim Jagielski because the mail server is not listening on the remote address/port. 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski @throws com::sun::star::auth::AuthenticationException 194*b1cdbd2cSJim Jagielski if the specified user could not be logged in. 195*b1cdbd2cSJim Jagielski 196*b1cdbd2cSJim Jagielski @throws com::sun::star::mail::MailException 197*b1cdbd2cSJim Jagielski for other errors during login. 198*b1cdbd2cSJim Jagielski 199*b1cdbd2cSJim Jagielski @see com::sun::star::uno::XCurrentContext 200*b1cdbd2cSJim Jagielski @see com::sun::star::mail::XAuthenticator 201*b1cdbd2cSJim Jagielski @see com::sun::star::lang::IllegalArgumentException 202*b1cdbd2cSJim Jagielski @see com::sun::star::io::AlreadyConnectedException 203*b1cdbd2cSJim Jagielski @see com::sun::star::io::UnknownHostException 204*b1cdbd2cSJim Jagielski @see com::sun::star::io::NoRouteToHostException 205*b1cdbd2cSJim Jagielski @see com::sun::star::io::ConnectException 206*b1cdbd2cSJim Jagielski @see com::sun::star::auth::AuthenticationException 207*b1cdbd2cSJim Jagielski @see com::sun::star::mail::IllegalStateException 208*b1cdbd2cSJim Jagielski @see com::sun::star::mail::MailException 209*b1cdbd2cSJim Jagielski */ 210*b1cdbd2cSJim Jagielski void connect([in] com::sun::star::uno::XCurrentContext xConnectionContext, [in] XAuthenticator xAuthenticator) 211*b1cdbd2cSJim Jagielski raises(com::sun::star::lang::IllegalArgumentException, 212*b1cdbd2cSJim Jagielski com::sun::star::io::AlreadyConnectedException, 213*b1cdbd2cSJim Jagielski com::sun::star::io::UnknownHostException, 214*b1cdbd2cSJim Jagielski com::sun::star::io::NoRouteToHostException, 215*b1cdbd2cSJim Jagielski com::sun::star::io::ConnectException, 216*b1cdbd2cSJim Jagielski com::sun::star::auth::AuthenticationFailedException, 217*b1cdbd2cSJim Jagielski com::sun::star::mail::MailException); 218*b1cdbd2cSJim Jagielski 219*b1cdbd2cSJim Jagielski /** 220*b1cdbd2cSJim Jagielski Disconnect from a mail service. 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski @throws com::sun::star::mail::MailException 223*b1cdbd2cSJim Jagielski if errors occur during disconnecting. 224*b1cdbd2cSJim Jagielski */ 225*b1cdbd2cSJim Jagielski void disconnect() 226*b1cdbd2cSJim Jagielski raises(com::sun::star::mail::MailException); 227*b1cdbd2cSJim Jagielski 228*b1cdbd2cSJim Jagielski /** 229*b1cdbd2cSJim Jagielski Returns whether a connection to a mail service 230*b1cdbd2cSJim Jagielski currently exist or not. 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski @returns 233*b1cdbd2cSJim Jagielski <TRUE/> if a connection to a mail service is established. 234*b1cdbd2cSJim Jagielski */ 235*b1cdbd2cSJim Jagielski boolean isConnected(); 236*b1cdbd2cSJim Jagielski}; 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski}; }; }; }; 239*b1cdbd2cSJim Jagielski 240*b1cdbd2cSJim Jagielski#endif 241