/** Copyright 2024 Haiku, Inc. All rights reserved.* Distributed under the terms of the MIT License.** Authors:* cafeina, cafeina@world** Corresponds to:* headers/os/mail/MailDaemon.h hrev58367* src/kits/mail/MailDaemon.cpp hrev58367*//*!\file MailDaemon.h\ingroup mail\ingroup libmail\brief Provides the BMailDaemon class.*//*!\class BMailDaemon\ingroup mail\ingroup libmail\brief Provides user level access to the mail_daemon to perform commonmail tasks such as check for new messages or send queued messages.\since Haiku R1*//*!\fn BMailDaemon::BMailDaemon()\brief Creates a BMailDaemon object that communicates with themail_daemon server.\since Haiku R1*//*!\fn virtual BMailDaemon::~BMailDaemon()\brief Frees all resources associated with this object.\since Haiku R1*//*!\name Mail tasks*///! @{/*!\fn status_t BMailDaemon::CheckMail(int32 accountID = -1)\brief Asks the mail_daemon to check if there are new messages for theaccount with ID \a accountID.If \a accountID is \c -1, it will check for new messages for allthe available accounts.\param[in] accountID The ID of the account.\retval B_OK The request has been sent successfully.\retval B_MAIL_NO_DAEMON The mail_daemon is not currently running.\since Haiku R1*//*!\fn status_t BMailDaemon::CheckAndSendQueuedMail(int32 accountID = -1)\brief Asks the mail_daemon to check if there are new messages andto send any queued messages pending to be sent, for theaccount with ID \a accountID.If \a accountID is \c -1, it will check for new messages and send thequeued messages for all the available accounts.\param[in] accountID The ID of the account.\retval B_OK The request has been sent successfully.\retval B_MAIL_NO_DAEMON The mail_daemon is not currently running.\since Haiku R1*//*!\fn status_t BMailDaemon::SendQueuedMail()\brief Asks the mail_daemon to send any queued message pending to be sent.\retval B_OK The request has been sent successfully.\retval B_MAIL_NO_DAEMON The mail_daemon is not currently running.\since Haiku R1*//*!\fn int32 BMailDaemon::CountNewMessages(bool waitForFetchCompletion = false)\brief Asks the mail_daemon how many new messages there are.\param[in] waitForFetchCompletion If \c true, it will make the countonce the mail server fetching is completed.\return The number of new messages, or \c B_MAIL_NO_DAEMON if themail_daemon is not currently running.\since Haiku R1*//*!\fn status_t BMailDaemon::MarkAsRead(int32 account, const entry_ref& ref, read_flags flag = B_READ)\brief Requests the mail_daemon to mark an e-mail message as reador unread.\param[in] account The account's ID.\param[in] ref The entry_ref of the target message.\param[in] flag Can be one of these: \c B_UNREAD, \c B_SEEN, \c B_READ.\retval B_OK The request has been sent successfully.\retval B_MAIL_NO_DAEMON The mail_daemon is not currently running.\since Haiku R1*//*!\fn status_t BMailDaemon::FetchBody(const entry_ref& ref, BMessenger* listener = NULL)\brief Requests the mail_daemon to retrieve the message's body.If \a listener is not \c NULL, it will receive a \c B_MAIL_BODY_FETCHEDnotification after the e-mail message's body was fetched successfully, or elsean error code if something went wrong.\param[in] ref The entry_ref of the target message.\param[in] listener A BMessenger where a reply will be sent to.\retval B_OK The request has been sent successfully.\retval B_MAIL_NO_DAEMON The mail_daemon is not currently running.\since Haiku R1*///! @}/*!\name Running status*///! @{/*!\fn status_t BMailDaemon::Launch()\brief Launches the mail_daemon.\retval B_OK The mail_daemon has been launched successfully.\retval B_ALREADY_RUNNING The mail_daemon is already running.\since Haiku R1*//*!\fn bool BMailDaemon::IsRunning()\brief Checks if the mail_daemon is running.\retval true The mail_daemon is running.\retval false The mail_daemon is not running.\since Haiku R1*//*!\fn status_t BMailDaemon::Quit()\brief Request the mail_daemon to quit.\retval B_OK The request has been sent successfully.\retval B_MAIL_NO_DAEMON The mail_daemon is not currently running.\since Haiku R1*///! @}