<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=us-ascii"/> <title>mail::account::readMessageContent</title> <link rel="stylesheet" href="manpage.css" type="text/css"/> <link rel="start" href="index.html" title="Cone: COnsole Newsreader And Emailer"/> <link rel="up" href="native.html" title="mail::account Native API reference"/> <link rel="prev" href="mail-readmsgattr.html" title="mail::account::readMessageAttributes"/> <link rel="next" href="mail-readmsgcontentdecoded.html" title="mail::account::readMessageContentDecoded"/> <link xmlns="" rel="icon" href="icon.gif" type="image/gif"/> <meta xmlns="" name="MSSmartTagsPreventParsing" content="TRUE"/> <!-- Copyright 2002 - 2007 Double Precision, Inc. See COPYING for distribution information. --> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center" rowspan="1"> mail::account::readMessageContent</th> </tr> <tr> <td width="20%" align="left" rowspan="1" colspan="1"> <a accesskey="p" href="mail-readmsgattr.html" shape="rect">Prev</a> </td> <th width="60%" align="center" rowspan="1" colspan="1"> <span class="structname">mail::account</span> Native API reference</th> <td width="20%" align="right" rowspan="1" colspan="1">  <a accesskey="n" href="mail-readmsgcontentdecoded.html" shape="rect">Next</a></td> </tr> </table> <hr/> </div> <div class="refentry" lang="en" xml:lang="en"> <a id="mail-readmsgcontent" shape="rect" name="mail-readmsgcontent"> </a> <div class="titlepage"/> <div class="refnamediv"> <h2>Name</h2> <p>mail::account::readMessageContent — Read messages</p> </div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <div class="literallayout"> <p><br clear="none"/> #include <libmail/mail.H><br clear="none"/> #include <libmail/envelope.H><br clear="none"/> #include <libmail/structure.H><br clear="none"/> <br clear="none"/> class myCallbackMessage : public mail::callback::message {<br clear="none"/> public:<br clear="none"/>     void success(std::string msg);<br clear="none"/>     void fail(std::string msg);<br clear="none"/> <br clear="none"/>     void messageEnvelopeCallback(size_t messageNumber,<br clear="none"/>                                  const <a class="link" href="envelope.html" title="mail::envelope" shape="rect">mail::envelope</a> &envelopeArg);<br clear="none"/> <br clear="none"/>     void messageReferencesCallback(size_t messageNumber,<br clear="none"/>                                    const std::vector<std::string> &referencesArg);<br clear="none"/> <br clear="none"/>     void messageArrivalDateCallback(size_t messageNumber,<br clear="none"/>                                     time_t datetime);<br clear="none"/> <br clear="none"/>     void messageSizeCallback(size_t messageNumber,<br clear="none"/>                              unsigned long size);<br clear="none"/> <br clear="none"/>     void messageStructureCallback(size_t messageNumber,<br clear="none"/>                                   const <a class="link" href="mimestruct.html" title="mail::mimestruct" shape="rect">mail::mimestruct</a> &messageStructure);<br clear="none"/>     void messageTextCallback(size_t messageNumber, std::string text);<br clear="none"/> };<br clear="none"/> <br clear="none"/> std::cout << (float)myMessageCallback.messageTextCompleted /<br clear="none"/>              (float)myMessageCallback.messageTextEstimatedSize * 100<br clear="none"/>           << "% completed." << endl;<br clear="none"/> <br clear="none"/></p> </div> <div class="literallayout"> <p><br clear="none"/> mail::account *account;<br clear="none"/></p> </div> <div class="funcsynopsis"> <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"> <tr> <td rowspan="1" colspan="1"><code class="funcdef">account-><b class="fsfunc">readMessageContent</b>(</code></td> <td rowspan="1" colspan="1">const std::vector<size_t> & </td> <td rowspan="1" colspan="1"><var class="pdparam">msgList</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">bool  </td> <td rowspan="1" colspan="1"><var class="pdparam">peek</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">mail::readMode  </td> <td rowspan="1" colspan="1"><var class="pdparam">requestType</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">myCallbackMessage & </td> <td rowspan="1" colspan="1"><var class="pdparam">callback</var><code>)</code>;</td> </tr> </table> </div> <div class="funcsynopsis"> <table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0"> <tr> <td rowspan="1" colspan="1"><code class="funcdef">account-><b class="fsfunc">readMessageContent</b>(</code></td> <td rowspan="1" colspan="1">size_t  </td> <td rowspan="1" colspan="1"><var class="pdparam">messageNum</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">bool  </td> <td rowspan="1" colspan="1"><var class="pdparam">peek</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">mail::mimestruct & </td> <td rowspan="1" colspan="1"><var class="pdparam">msginfo</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">mail::readMode  </td> <td rowspan="1" colspan="1"><var class="pdparam">requestType</var>,</td> </tr> <tr> <td rowspan="1" colspan="1"> </td> <td rowspan="1" colspan="1">myCallbackMessage & </td> <td rowspan="1" colspan="1"><var class="pdparam">callback</var><code>)</code>;</td> </tr> </table> </div> </div> <div class="refsect1" lang="en" xml:lang="en"> <a id="id599399" shape="rect" name="id599399"> </a> <h2>USAGE</h2> <p><code class="function">mail::account::readMessagesContent</code> reads messages in the currently open folder. There are two alternative versions of this method.</p> <div class="itemizedlist"> <ul type="disc"> <li> <p>The first version receives a list of message numbers. <em class="parameter"><code>msgList</code></em> specifies a list of messages. Messages are numbered starting with message #0 and up to one less than <a class="link" href="mail-getfolderindexsize.html" title="mail::account::getFolderIndexSize" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::account::getFolderIndexSize</span>(3x)</span></a>() (when <code class="function">mail::account::getFolderIndexSize</code> returns 6, the messages are numbered 0 through 5). Only the messages that appear in <em class="parameter"><code>msgList</code></em> are processed by this request. This version is capable of returning headers and/or content of multiple messages.</p> </li> <li> <p>The second version receives a single message number, and a <a class="link" href="mimestruct.html" title="mail::mimestruct" shape="rect"><span class="structname">mail::mimestruct</span></a> object that refers to a single MIME attachment or a section of this message. The <em class="parameter"><code>mail::account::MIMESTRUCTURE</code></em> argument to <a class="link" href="mail-readmsgattr.html" title="mail::account::readMessageAttributes" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::account::readMessageAttributes</span>(3x)</span></a> returns a recursive tree of <span class="structname">mail::mimestruct</span> objects which enumerates the individual MIME sections in the message. <em class="parameter"><code>msgInfo</code></em> must be a reference to one of these objects (or to a copy of these objects).</p> </li> </ul> </div> <p>Setting <em class="parameter"><code>peek</code></em> to true does not reset the <em class="structfield"><code>unread</code></em> message status flag for this message. Otherwise the <em class="structfield"><code>unread</code></em> message status flag will be reset.</p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>The application is notified about when a message's status changes by by invoking the <code class="function">messageChanged</code> callback method of the currently opened folder's <span class="structname">mail::folderCallback</span> object. Depending on the mail server, the <code class="function">messageChanged</code> method may be invoked as part of processing this request, or some time later after this request is completed, and <em class="parameter"><code>callback</code></em>'s <code class="function">success</code> method was invoked.</p> </div> <p>The <code class="function">mail::callback::message::messageTextCallback</code> method receives the requested content, which is determined by the remaining parameters.</p> <p><em class="parameter"><code>requestType</code></em> identifies the type of information to return from the selected MIME section, and must be set to one of the following values:</p> <div class="variablelist"> <p>The callback method may not receive the entire requested content at once. Typically the method will be invoked multiple times; each time the method receives the next portion of the requested content. When requesting headers and/or content of multiple messages, they may be returned in any order, and the <em class="parameter"><code>messageNumber</code></em> parameter indicates which message's contents are being returned (note, however, that the entire contents of a given message are returned in their entirety, even when the callback method gets invoked multiple times for that message, before content from the next message are returned).</p> <dl> <dt><span class="term"><code class="literal">mail::readHeadersFolded</code></span></dt> <dd> <p>Return only the headers of the MIME section. Folded headers are unfolded (the newline and the leading space on the next line are replaced with a single space character).</p> </dd> <dt><span class="term"><code class="literal">mail::readHeaders</code></span></dt> <dd> <p>Return only the headers of the MIME section. The headers are returned as-is, without unfolding them.</p> </dd> <dt><span class="term"><code class="literal">mail::readContents</code></span></dt> <dd> <p>Return the content of the MIME section.</p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>The MIME section is not decoded. Check the <code class="literal">Content-Transfer-Encoding</code> header to know what you're getting.</p> </div> </dd> <dt><span class="term"><code class="literal">mail::readBoth</code></span></dt> <dd> <p>Return the entire MIME section, as is: its headers, a blank line, then the contents.</p> </dd> </dl> </div> </div> <div class="refsect1" lang="en" xml:lang="en"> <a id="id599683" shape="rect" name="id599683"> </a> <h2>Return Codes</h2> <p>The application must wait until <em class="parameter"><code>callback</code></em>'s <code class="function">success</code> or <code class="function">fail</code> method is invoked. The <code class="function">success</code> method is invoked when this request is succesfully processed. The <code class="function">fail</code> method is invoked if this request cannot be processed. The application must not destroy <em class="parameter"><code>callback</code></em> until either the <code class="function">success</code> or <code class="function">fail</code> method is invoked.</p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p><em class="parameter"><code>callback</code></em>'s <code class="function">fail</code> method may be invoked even after other callback methods were invoked. This indicates that the request was partially completed before the error was encountered.</p> </div> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <h3 class="title">Note</h3> <p>Multiple applications may have the same account and folder opened at the same time. It is possible that a message referenced by this request was already deleted by another application. Depending on the underlying server implementation this will result in either a failed request, invoking <code class="function">callback.fail</code>, or the request completing (<code class="function">callback.success</code> invoked) but without invoking any callback function that refer to the message.</p> </div> </div> <div class="refsect1" lang="en" xml:lang="en"> <a id="id599805" shape="rect" name="id599805"> </a> <h2>SEE ALSO</h2> <p><a class="link" href="mail-getfolderindexsize.html" title="mail::account::getFolderIndexSize" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::account::getFolderIndexSize</span>(3x)</span></a>, <a class="link" href="mail-readmsgattr.html" title="mail::account::readMessageAttributes" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::account::readMessageAttributes</span>(3x)</span></a>, <a class="link" href="mail-readmsgcontentdecoded.html" title="mail::account::readMessageContentDecoded" shape="rect"><span class="citerefentry"><span class="refentrytitle">mail::account::readMessageContentDecoded</span>(3x)</span></a>.</p> </div> </div> <div class="navfooter"> <hr/> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left" rowspan="1" colspan="1"> <a accesskey="p" href="mail-readmsgattr.html" shape="rect">Prev</a> </td> <td width="20%" align="center" rowspan="1" colspan="1"> <a accesskey="u" href="native.html" shape="rect">Up</a></td> <td width="40%" align="right" rowspan="1" colspan="1">  <a accesskey="n" href="mail-readmsgcontentdecoded.html" shape="rect">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top" rowspan="1" colspan="1">mail::account::readMessageAttributes </td> <td width="20%" align="center" rowspan="1" colspan="1"> <a accesskey="h" href="index.html" shape="rect">Home</a> | <a accesskey="t" href="bk01-toc.html" shape="rect">ToC</a></td> <td width="40%" align="right" valign="top" rowspan="1" colspan="1">  mail::account::readMessageContentDecoded</td> </tr> </table> </div> </body> </html>