/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_mail_XMailService_idl__ #define __com_sun_star_mail_XMailService_idl__ #include #include #include #include #include #include #include #include #include #include #include #include module com { module sun { module star { module mail { /** Represents a mail server abstraction. @since OOo 2.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 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. @pre isConnected 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 getSupportedConnectionTypes().
  • Timeout of type 'long' (Optional). Specifies a timeout in seconds for blocking operations, like the connection attempt.
@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 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */