Source for file Deliver_IMAP.class.php

Documentation is available at Deliver_IMAP.class.php

  1. <?php
  2.  
  3. /**
  4.  * Deliver_IMAP.class.php
  5.  *
  6.  * Delivery backend for the Deliver class.
  7.  *
  8.  * @copyright 1999-2020 The SquirrelMail Project Team
  9.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10.  * @version $Id: Deliver_IMAP.class.php 14845 2020-01-07 08:09:34Z pdontthink $
  11.  * @package squirrelmail
  12.  */
  13.  
  14. /** This of course depends upon Deliver.. */
  15.  
  16. require_once(SM_PATH 'class/deliver/Deliver.class.php');
  17.  
  18. /**
  19.  * This class is incomplete and entirely undocumented.
  20.  * @package squirrelmail
  21.  */
  22. class Deliver_IMAP extends Deliver {
  23.  
  24.     function getBcc({
  25.        return true;
  26.     }
  27.  
  28.     /**
  29.      * function send_mail - send the message parts to the IMAP stream
  30.      *
  31.      * Overridden from parent class so that we can insert some
  32.      * IMAP APPEND commands before and after the message is
  33.      * sent on the IMAP stream.
  34.      *
  35.      * @param Message  $message      Message object to send
  36.      * @param string   $header       Headers ready to send
  37.      * @param string   $boundary     Message parts boundary
  38.      * @param resource $stream       Handle to the SMTP stream
  39.      *                                (when FALSE, nothing will be
  40.      *                                written to the stream; this can
  41.      *                                be used to determine the actual
  42.      *                                number of bytes that will be
  43.      *                                written to the stream)
  44.      * @param int     &$raw_length   The number of bytes written (or that
  45.      *                                would have been written) to the
  46.      *                                output stream - NOTE that this is
  47.      *                                passed by reference
  48.      * @param string   $folder       The IMAP folder to which the
  49.      *                                message is being sent
  50.      *
  51.      * @return void 
  52.      *
  53.      */
  54.     function send_mail($message$header$boundary$stream=false
  55.                        &$raw_length$folder=NULL{
  56.  
  57.         if (is_null($folder))
  58.             die('Internal error. Cannot pass NULL folder name to Deliver_IMAP::send_mail()');
  59.  
  60.         // write the body without providing a stream so we
  61.         // can calculate the final length - after this call,
  62.         // $final_length will be our correct final length value
  63.         //
  64.         $final_length $raw_length;
  65.         $this->writeBody($message0$final_length$boundary);
  66.  
  67.  
  68.         // now if we have a real live stream, send the message
  69.         //
  70.         if ($stream{
  71.             sqimap_append ($stream$folder$final_length);
  72.  
  73.             $this->preWriteToStream($header);
  74.             $this->writeToStream($stream$header);
  75.             $this->writeBody($message$stream$raw_length$boundary);
  76.  
  77.             sqimap_append_done ($stream$folder);
  78.         }
  79.  
  80.     }
  81.  
  82.  
  83.     /* to do: finishing the imap-class so the initStream function can call the
  84.        imap-class */
  85. }

Documentation generated on Mon, 13 Jan 2020 04:22:21 +0100 by phpDocumentor 1.4.3