Source for file download.php
Documentation is available at download.php
* Handles attachment downloads to the users computer.
* Also allows displaying of attachments when possible.
* @copyright 1999-2020 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id: download.php 14840 2020-01-07 07:42:38Z pdontthink $
/** This is the download page */
define('PAGE_NAME', 'download');
* Path for SquirrelMail required files.
/* SquirrelMail required files. */
require_once(SM_PATH .
'include/validate.php');
require_once(SM_PATH .
'functions/imap.php');
require_once(SM_PATH .
'functions/mime.php');
header('Cache-Control: cache');
$passed_id = (int)
$temp;
global $imap_stream_options; // in case not defined in config
$imapConnection =
sqimap_login($username, $key, $imapServerAddress, $imapPort, 0, $imap_stream_options);
if (isset
($messages[$mbx_response['UIDVALIDITY']]["$passed_id"])) {
$message =
$messages[$mbx_response['UIDVALIDITY']]["$passed_id"];
$subject =
$message->rfc822_header->subject;
if ($message->rfc822_header) {
$subject =
$message->rfc822_header->subject;
* lets redefine message as this particular entity that we wish to display.
* it should hold only the header for this entity. We need to fetch the body
* yet before we can display anything.
if (isset
($override_type0)) {
$type0 =
$override_type0;
if (isset
($override_type1)) {
$type1 =
$override_type1;
$filename =
$header->disposition->getProperty('filename');
$filename =
$header->disposition->getProperty('name');
$filename =
$header->getParameter('name');
$filename =
$header->getParameter('name');
// If name is not set, use subject of email
if ($type1 ==
'plain' &&
$type0 ==
'text')
else if ($type1 ==
'richtext' &&
$type0 ==
'text')
else if ($type1 ==
'postscript' &&
$type0 ==
'application')
else if ($type1 ==
'rfc822' &&
$type0 ==
'message')
$filename =
$filename .
'.' .
$suffix;
* Close session in order to prevent script locking on larger
* downloads. SendDownloadHeaders() and mime_print_body_lines()
* don't write information to session. mime_print_body_lines()
* call duration depends on size of attachment and script can
* cause interface lockups, if session is not closed.
* The following sections display the attachment in different
* ways depending on how they choose. The first way will download
* under any circumstance. This sets the Content-type to be
* applicatin/octet-stream, which should be interpreted by the
* browser as "download me".
* The second method (view) is used for images or other formats
* that should be able to be handled by the browser. It will
* most likely display the attachment inline inside the browser.
* And finally, the third one will be used by default. If it
* is displayable (text or html), it will load them up in a text
* viewer (built in to squirrelmail). Otherwise, it sets the
* content-type as application/octet-stream
if (isset
($absolute_dl) &&
$absolute_dl) {
/* be aware that any warning caused by download.php will corrupt the
* attachment in case of ERROR reporting = E_ALL and the output is the screen */
Documentation generated on Mon, 13 Jan 2020 04:24:34 +0100 by phpDocumentor 1.4.3