1<HTML> 2<HEAD> 3 <TITLE>MIMEMultipartContainer</TITLE> 4</HEAD> 5<BODY BGCOLOR="#FFFFFF" LINK="#2222AA" BACKGROUND="../art/bodyBack.gif"> 6<P><A NAME=BCursor></A> <!--TOP LINKS--></P> 7 8<CENTER><TABLE BORDER=2 BGCOLOR="#FFDD88"> 9 <TR> 10 <TD> 11 <P><TABLE BGCOLOR="#550033" CELLPADDING=5> 12 <TR> 13 <TD> 14 <P><A HREF="../index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>Mail 15 Kit 2 Root</B></FONT></A></P> 16 </TD> 17 <TD> 18 <P><A HREF="index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>The 19 Public API</B></FONT></A></P> 20 </TD> 21 </TR> 22 </TABLE> 23 </P> 24 </TD> 25 </TR> 26</TABLE> 27 28<HR NOSHADE> 29 30</CENTER> 31 32<P><!--TOP LINKS--></P> 33 34<H1><FONT SIZE="+4">MIMEMultipartContainer</FONT></H1> 35 36<BLOCKQUOTE><FONT FACE="helvetica"><B>Derived 37 from:</B></FONT> <A HREF="MailComponent.html">MailComponent</A><BR> 38 <FONT FACE="helvetica"><B>Declared in:</B></FONT> 39 include/public/MailContainer.h<BR> 40 <FONT FACE="helvetica"><B>Library:</B></FONT> libmail.so<BR> 41 42 <P><BR> 43 </P> 44 45 <P>MIMEMultipartContainer uses the RFC 2046 multipart specification to allow you to place 46 multiple components in a single message. Mostly useful for attachments and things.</P></BLOCKQUOTE> 47 48<P> 49 50<HR NOSHADE> 51 52</P> 53 54<H2><FONT SIZE="+3" COLOR="#430000">C</FONT><FONT COLOR="#430000">onstructor 55and 56</FONT><FONT SIZE="+3" COLOR="#430000">D</FONT><FONT COLOR="#430000">estructor</FONT></H2> 57 58<P> 59 60<HR> 61 62<A NAME=MIMEMultipartContainer></A><TABLE> 63 <TR> 64 <TD> 65 <P></P> 66 </TD> 67 <TD> 68 <P><FONT SIZE="+2">MIMEMultipartContainer() 69 </FONT></P> 70 </TD> 71 </TR> 72</TABLE> 73</P> 74 75<P> </P> 76 77<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 78 <TR> 79 <TD> 80 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 81 <TR> 82 <TD> 83 <FONT SIZE="+1"><B><TT>MIMEMultipartContainer(</TT></B></FONT> 84 const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>boundary</I></FONT> = <B>NULL</B>, 85 const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>this_is_an_MIME_message_text</I></FONT> = <B>NULL</B> 86 <FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 87 </TD> 88 </TR> 89 </TABLE> 90 </P> 91 </TD> 92 </TR> 93 </TABLE> 94 95 <P>Initializes the <B>MIMEMultipartContainer</B>. Sets the boundary between parts to <FONT FACE="HELVETICA" COLOR="#991122"><I>boundary</I></FONT>. 96 Note that <FONT FACE="HELVETICA" COLOR="#991122"><I>boundary</I></FONT> can be an arbitrary text string but <B>must</B> contain only US-ASCII 97 characters and be unique to this particular MIMEMultipartContainer. It does not have to be globally unique, however. <FONT FACE="HELVETICA" COLOR="#991122"><I>boundary</I></FONT> must be specified, 98 either here or through <A HREF="#SetBoundary">SetBoundary()</A>. Also, sets the warning text about "This is an MIME message..." to <FONT FACE="HELVETICA" COLOR="#991122"><I>this_is_an_MIME_message_text</I></FONT>, 99 which need not be specified at all.</P> 100 101 </BLOCKQUOTE> 102 103<P> 104 105<HR> 106 107<A NAME="~MIMEMultipartContainer"></A><TABLE> 108 <TR> 109 <TD> 110 <P></P> 111 </TD> 112 <TD> 113 <P><FONT SIZE="+2">~MIMEMultipartContainer() 114 </FONT></P> 115 </TD> 116 </TR> 117</TABLE> 118</P> 119 120<P> </P> 121 122<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 123 <TR> 124 <TD> 125 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 126 <TR> 127 <TD> 128 <P>virtual 129 <FONT SIZE="+1"><B><TT>~MIMEMultipartContainer()</TT></B></FONT></P> 130 </TD> 131 </TR> 132 </TABLE> 133 </P> 134 </TD> 135 </TR> 136 </TABLE> 137 138 <P>Destroys the <B>MIMEMultipartContainer</B>. Note that this deletes all components which may have been added to 139 this object. The ownership of all components is assumed by <B>MIMEMultipartContainer</B> when they are added.</P></BLOCKQUOTE> 140 141<P> 142 143<HR NOSHADE> 144 145</P> 146 147<H2><FONT SIZE="+3" COLOR="#430000">M</FONT><FONT COLOR="#430000">ember 148</FONT><FONT SIZE="+3" COLOR="#430000">F</FONT><FONT COLOR="#430000">unctions</FONT></H2> 149 150<P> 151 152<HR> 153 154<A NAME=GetDecodedData></A><TABLE> 155 <TR> 156 <TD> 157 <P></P> 158 </TD> 159 <TD> 160 <P><FONT SIZE="+2">GetDecodedData () </FONT></P> 161 </TD> 162 </TR> 163</TABLE> 164</P> 165 166<P> </P> 167 168<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 169 <TR> 170 <TD> 171 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 172 <TR> 173 <TD> 174 <P>virtual status_t 175 <FONT SIZE="+1"><B><TT>GetDecodedData(</TT></B></FONT>BPositionIO 176 *<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 177 </TD> 178 </TR> 179 </TABLE> 180 </P> 181 </TD> 182 </TR> 183 </TABLE> 184 185 <P>Returns an error. MIMEMultipartComponents don't have data of their own..</P> 186 187 <P><B>Return Value:</B></P> 188 189 <BLOCKQUOTE>- <B>B_BAD_TYPE</B> This operation is guranteed to fail.</BLOCKQUOTE></BLOCKQUOTE> 190 191<P> 192 193<HR> 194 195<A NAME=SetDecodedData></A><TABLE> 196 <TR> 197 <TD> 198 <P></P> 199 </TD> 200 <TD> 201 <P><FONT SIZE="+2">SetDecodedData () </FONT></P> 202 </TD> 203 </TR> 204</TABLE> 205</P> 206 207<P> </P> 208 209<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 210 <TR> 211 <TD> 212 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 213 <TR> 214 <TD> 215 <P>virtual status_t 216 <FONT SIZE="+1"><B><TT>SetDecodedData(</TT></B></FONT>BPositionIO 217 *<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 218 </TD> 219 </TR> 220 </TABLE> 221 </P> 222 </TD> 223 </TR> 224 </TABLE> 225 226 <P>Returns an error. MIMEMultipartComponents don't have data of their own..</P> 227 228 <P><B>Return Value:</B></P> 229 230 <BLOCKQUOTE>- <B>B_BAD_TYPE</B> This operation is guranteed to fail.</BLOCKQUOTE></BLOCKQUOTE> 231 232<P> 233 234<HR> 235 236<A NAME=Instantiate></A><TABLE> 237 <TR> 238 <TD> 239 <P></P> 240 </TD> 241 <TD> 242 <P><FONT SIZE="+2">Instantiate () </FONT></P> 243 </TD> 244 </TR> 245</TABLE> 246</P> 247 248<P> </P> 249 250<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 251 <TR> 252 <TD> 253 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 254 <TR> 255 <TD> 256 <P>virtual status_t 257 <FONT SIZE="+1"><B><TT>Instantiate(</TT></B></FONT>BPositionIO 258 *<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>, 259 size_t <FONT FACE="HELVETICA" COLOR="#991122"><I>length</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 260 </TD> 261 </TR> 262 </TABLE> 263 </P> 264 </TD> 265 </TR> 266 </TABLE> 267 268 <P>Does what you would expect. Creates a list of components from <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>. Note that you <B>cannot</B> delete <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>, as we cache 269 it for later. This is because, as a memory and CPU saving measure, we do not actually instantiate these components until asked to. Thus instantiating an MIMEMultipartContainer is not a 270 processor or memory-intensive operation.</BLOCKQUOTE> 271 272 <P><B>Return Value:</B></P> 273 274 <BLOCKQUOTE>- <B>B_OK</B> if everything succeeds. 275 276 <P>- <B>B_BAD_TYPE</B> if <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT FACE="HELVETICA"></FONT> is not an MIME multipart component</P> 277 </BLOCKQUOTE></BLOCKQUOTE> 278 279<P> 280 281<HR> 282 283<A NAME=Render></A><TABLE> 284 <TR> 285 <TD> 286 <P></P> 287 </TD> 288 <TD> 289 <P><FONT SIZE="+2">Render () </FONT></P> 290 </TD> 291 </TR> 292</TABLE> 293</P> 294 295<P> </P> 296 297<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 298 <TR> 299 <TD> 300 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 301 <TR> 302 <TD> 303 <P>virtual status_t 304 <FONT SIZE="+1"><B><TT>Render(</TT></B></FONT>BPositionIO 305 *<FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT><FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 306 </TD> 307 </TR> 308 </TABLE> 309 </P> 310 </TD> 311 </TR> 312 </TABLE> 313 314 <P>Renders the component into RFC 822 format and places the result 315 in <FONT FACE="HELVETICA" COLOR="#991122"><I>data</I></FONT>, 316 starting at <FONT FACE="HELVETICA" COLOR="#991122"><I>data 317 </I></FONT>->Position().</P> 318 319 <P><B>Return Value:</B></P> 320 321 <BLOCKQUOTE>- <B>B_OK</B> if everything succeeds. 322 323 <P>- Something else in the event of failure.</P></BLOCKQUOTE></BLOCKQUOTE> 324 325<P> 326 327<HR> 328 329<A NAME=SetBoundary></A><TABLE> 330 <TR> 331 <TD> 332 <P></P> 333 </TD> 334 <TD> 335 <P><FONT SIZE="+2">SetBoundary() </FONT></P> 336 </TD> 337 </TR> 338</TABLE> 339</P> 340 341<P> </P> 342 343<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 344 <TR> 345 <TD> 346 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 347 <TR> 348 <TD> 349 <P>void 350 <FONT SIZE="+1"><B><TT>SetBoundary(</TT></B></FONT> 351 const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>boundary</I></FONT> 352 <FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 353 </TD> 354 </TR> 355 </TABLE> 356 </P> 357 </TD> 358 </TR> 359 </TABLE> 360 361 <P>Sets the boundary between parts to <FONT FACE="HELVETICA" COLOR="#991122"><I>boundary</I></FONT>. 362 Note that <FONT FACE="HELVETICA" COLOR="#991122"><I>boundary</I></FONT> can be an arbitrary text string but <B>must</B> contain only US-ASCII 363 characters and be unique to this particular MIMEMultipartContainer. It does not have to be globally unique, however.</P></BLOCKQUOTE> 364 365<P> 366 367<HR> 368 369<A NAME=SetThisIsAnMIMEMessageText></A><TABLE> 370 <TR> 371 <TD> 372 <P></P> 373 </TD> 374 <TD> 375 <P><FONT SIZE="+2">SetThisIsAnMIMEMessageText() </FONT></P> 376 </TD> 377 </TR> 378</TABLE> 379</P> 380 381<P> </P> 382 383<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 384 <TR> 385 <TD> 386 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 387 <TR> 388 <TD> 389 <P>void 390 <FONT SIZE="+1"><B><TT>SetThisIsAnMIMEMessageText(</TT></B></FONT> 391 const char *<FONT FACE="HELVETICA" COLOR="#991122"><I>text</I></FONT> 392 <FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 393 </TD> 394 </TR> 395 </TABLE> 396 </P> 397 </TD> 398 </TR> 399 </TABLE> 400 401 <P>Sets the warning text about "This is an MIME message..." to <FONT FACE="HELVETICA" COLOR="#991122"><I>text</I></FONT>, 402 which need not be specified at all. We reccomend that it only be set in the top-most <B>MIMEMultipartContainer</B> of the message.</P></BLOCKQUOTE> 403 404<P> 405 406<HR> 407 408<A NAME=AddComponent></A><TABLE> 409 <TR> 410 <TD> 411 <P></P> 412 </TD> 413 <TD> 414 <P><FONT SIZE="+2">AddComponent() </FONT></P> 415 </TD> 416 </TR> 417</TABLE> 418</P> 419 420<P> </P> 421 422<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 423 <TR> 424 <TD> 425 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 426 <TR> 427 <TD> 428 <P> 429 void <FONT SIZE="+1"><B><TT>AddComponent(</TT></B></FONT> 430 <A HREF="MailComponent.html">MailComponent</A> *<FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT> 431 <FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 432 </TD> 433 </TR> 434 </TABLE> 435 </P> 436 </TD> 437 </TR> 438 </TABLE> 439 440 <P>Adds <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT> to this MIMEMultipartContainer. Note that the MIMEMultipartContainer 441 assumes ownership of <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>. Thus, you <B>may not</B> delete <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>. 442 If you continue to modify to it after calling <A HREF="#AddComponent">AddComponent()</A>, your changes will be reflected when you 443 call <A HREF="#Render">Render()</A>.</P></BLOCKQUOTE> 444 445<P> 446 447<HR> 448 449<A NAME=GetComponent></A><TABLE> 450 <TR> 451 <TD> 452 <P></P> 453 </TD> 454 <TD> 455 <P><FONT SIZE="+2">GetComponent() </FONT></P> 456 </TD> 457 </TR> 458</TABLE> 459</P> 460 461<P> </P> 462 463<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 464 <TR> 465 <TD> 466 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 467 <TR> 468 <TD> 469 <P> 470 <A HREF="MailComponent.html">MailComponent</A> * <FONT SIZE="+1"><B><TT>GetComponent(</TT></B></FONT> 471 int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> 472 <FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 473 </TD> 474 </TR> 475 </TABLE> 476 </P> 477 </TD> 478 </TR> 479 </TABLE> 480 481 <P>Returns the component at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT>. 482 Instantiate()s it if it has not yet been instantiated. Otherwise, returns already instantiated 483 component. Use RTTI or <A HREF="MailComponent.html">MailComponent</A> hooks to do useful things with the returned 484 component.</P> 485 486 <P> </P> 487 488 <P></BLOCKQUOTE> 489 490<HR> 491 492<A NAME=CountComponents></A><TABLE> 493 <TR> 494 <TD> 495 <P></P> 496 </TD> 497 <TD> 498 <P><FONT SIZE="+2">CountComponents() </FONT></P> 499 </TD> 500 </TR> 501</TABLE> 502</P> 503 504<P> </P> 505 506<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 507 <TR> 508 <TD> 509 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 510 <TR> 511 <TD> 512 <P> 513 int32 <FONT SIZE="+1"><B><TT>CountComponents()</TT></B></FONT> const</P> 514 </TD> 515 </TR> 516 </TABLE> 517 </P> 518 </TD> 519 </TR> 520 </TABLE> 521 522 <P>Returns the total number of components in this MIMEMultipartContainer.</P> 523 524 <P> </P></BLOCKQUOTE> 525 526 <P> 527 528 529<HR> 530 531<A NAME=ManualGetComponent></A><TABLE> 532 <TR> 533 <TD> 534 <P></P> 535 </TD> 536 <TD> 537 <P><FONT SIZE="+2">ManualGetComponent() </FONT></P> 538 </TD> 539 </TR> 540</TABLE> 541</P> 542 543<P> </P> 544 545<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 546 <TR> 547 <TD> 548 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 549 <TR> 550 <TD> 551 <P> 552 status_t <FONT SIZE="+1"><B><TT>ManualGetComponent(</TT></B></FONT> 553 <A HREF="MailComponent.html">MailComponent</A> * <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>, 554 int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> 555 <FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 556 </TD> 557 </TR> 558 </TABLE> 559 </P> 560 </TD> 561 </TR> 562 </TABLE> 563 564 <P>Attempts to Instantiate() <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT> from the component at 565 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT>. Note that this will fail either if <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>->Instantiate() fails 566 or if the component at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> either does not exist or exists only as a <A HREF="MailComponent.html">MailComponent</A> and not as a raw buffer. In other words, 567 this function will succeed if and only if the component at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> exists, was part of the message 568 when this MIMEMultipartContainer was instantiated and has not been written over since then, and <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>->Instantiate() succeeds on this buffer. 569 <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT> must be a valid <A HREF="MailComponent.html">MailComponent</A>.</P> 570 571 <P><B>Return Value:</B></P> 572 573 <BLOCKQUOTE>- <B>B_OK</B> if everything succeeds. 574 575 <P>- <B>B_BAD_INDEX</B> if <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> is out of range</P> 576 <P>- <B>B_NAME_IN_USE</B> if the component at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> does not exist in raw buffer form</P> 577 578 <P>- Something else if <FONT FACE="HELVETICA" COLOR="#991122"><I>component</I></FONT>->Instantiate() fails.</P> 579 </BLOCKQUOTE> 580 581</BLOCKQUOTE> 582<P> 583 584<HR> 585 586<A NAME=RemoveComponent></A><TABLE> 587 <TR> 588 <TD> 589 <P></P> 590 </TD> 591 <TD> 592 <P><FONT SIZE="+2">RemoveComponent() </FONT></P> 593 </TD> 594 </TR> 595</TABLE> 596</P> 597 598<P> </P> 599 600<BLOCKQUOTE><TABLE BORDER=2 BGCOLOR="#550033" WIDTH=1000> 601 <TR> 602 <TD> 603 <P><TABLE BORDER=1 BGCOLOR="#FFFFFF" CELLPADDING=8 WIDTH=1000> 604 <TR> 605 <TD> 606 <P> 607 status_t <FONT SIZE="+1"><B><TT>RemoveComponent(</TT></B></FONT> 608 int32 <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> 609 <FONT SIZE="+1"><B><TT>)</TT></B></FONT></P> 610 </TD> 611 </TR> 612 </TABLE> 613 </P> 614 </TD> 615 </TR> 616 </TABLE> 617 618 <P>Removes the component at <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> from the container and 619 frees all memory associated with it (i.e. we delete it).</P> 620 621 <P><B>Return Value:</B></P> 622 623 <BLOCKQUOTE>- <B>B_OK</B> if everything succeeds.<P> 624 625 - <B>B_BAD_INDEX</B> if <FONT FACE="HELVETICA" COLOR="#991122"><I>index</I></FONT> is out of range</P> 626 </BLOCKQUOTE> 627 628</BLOCKQUOTE> 629 630</TABLE></P> 631 632<P><!--TOP LINKS--> 633 634<HR NOSHADE> 635 636</P> 637 638<CENTER><TABLE BORDER=2 BGCOLOR="#FFDD88"> 639 <TR> 640 <TD> 641 <P><TABLE BGCOLOR="#550033" CELLPADDING=5> 642 <TR> 643 <TD> 644 <P><A HREF="../index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>Mail 645 Kit 2 Root</B></FONT></A></P> 646 </TD> 647 <TD> 648 <P><A HREF="index.html"><FONT FACE="HELVETICA" COLOR="#FFFFFF"><B>The 649 Public API</B></FONT></A></P> 650 </TD> 651 </TR> 652 </TABLE> 653 </P> 654 </TD> 655 </TR> 656</TABLE> 657</CENTER> 658 659<P><!--TOP LINKS--> <!-- Footer for Release 5 HTML Be Book --><BR> 660</P> 661 662<CENTER><FONT SIZE="+3" COLOR="#555555"><I>Mail Daemon 2 API 663Documentation</I></FONT> 664 665<P><FONT SIZE="+1" COLOR="#555555"><I>©2001 Dr. Zoidberg 666Enterprises</I></FONT></P></CENTER> 667</BODY> 668</HTML> 669