Revision control

Copy as Markdown

Other Tools

/* -*- 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;
};