/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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/. */ #include "nsIStreamListener.idl" interface nsIMsgStatusFeedback; interface nsIMsgIdentity; interface nsIMsgSendLaterListener; interface nsIMsgFolder; /** * nsIMsgSendLater is a service used for sending messages in the background. * Messages should be saved to an identity's unsent messages folder, and then * can be sent by calling sendUnsentMessages. * * Although the service supports passing identities as parameters, until bug * 317803 is fixed, all identities use the same folder, and hence the option * currently doesn't work. */ [scriptable, uuid(fa324a4b-4b87-4e9a-a3c0-af9071a358df)] interface nsIMsgSendLater : nsIStreamListener { /// Used to obtain status feedback for when messages are sent. attribute nsIMsgStatusFeedback statusFeedback; /** * Sends any unsent messages in the identity's unsent messages folder. * * @param aIdentity The identity to send messages for. */ void sendUnsentMessages(in nsIMsgIdentity aIdentity); /** * Adds an listener to the service to receive notifications. * * @param aListener The listener to add. */ void addListener(in nsIMsgSendLaterListener aListener); /** * Removes a listener from the service. * * @param aListener The listener to remove. * @exception NS_ERROR_INVALID_ARG If the listener was not already added to * the service. */ void removeListener(in nsIMsgSendLaterListener aListener); /** * Returns the unsent messages folder for the identity. */ nsIMsgFolder getUnsentMessagesFolder(in nsIMsgIdentity userIdentity); /** * Returns true if there are any unsent messages to send. * * @param aIdentity The identity whose folder to check for unsent messages. * If not specified, all unsent message folders are checked. */ boolean hasUnsentMessages([optional] in nsIMsgIdentity aIdentity); /// Returns true if the service is currently sending messages. readonly attribute boolean sendingMessages; };