till
2008-02-13 734584e2fe9da38246fe6c59671ef1f0c0e41859
* mime_content_type() is unavailable in PHP5 and breaks sending emails with attachments
* implemented rc_mime_content_type() with file_info-failover
* added svn:ignore for phpinfo.php ;-)



2 files modified
44 ■■■■■ changed files
program/include/rcube_shared.inc 39 ●●●●● patch | view | raw | blame | history
program/steps/mail/sendmail.inc 5 ●●●● patch | view | raw | blame | history
program/include/rcube_shared.inc
@@ -674,5 +674,42 @@
  }
}
/**
 * A method to guess the mime_type of an attachment.
 *
 * @param string $path     Path to the file.
 * @param string $failover Mime type supplied for failover.
 *
 * @return string
 * @author Till Klampaeckel <till@php.net>
 * @see    http://de2.php.net/manual/en/ref.fileinfo.php
 * @see    http://de2.php.net/mime_content_type
 */
function rc_mime_content_type($path, $failover = 'unknown/unknown')
{
    global $CONFIG;
?>
    $mime_magic = $CONFIG['mime_magic'];
    if (function_exists('mime_content_type')) {
        return mime_content_type($path);
    }
    if (!extension_loaded('fileinfo')) {
        if (!dl('fileinfo.' . PHP_SHLIB_SUFFIX)) {
            return $failover;
        }
    }
    $finfo = finfo_open(FILEINFO_MIME, $mime_magic);
    if (!$finfo) {
        return $failover;
    }
    $mime_type = finfo_file($finfo,$path);
    if (!$mime_type) {
        return $failover;
    }
    finfo_close($finfo);
    return $mime_type;
}
?>
program/steps/mail/sendmail.inc
@@ -270,7 +270,10 @@
        We need to replace mime_content_type in a later release because the function
        is deprecated in favour of File_Info
      */
      $MAIL_MIME->addAttachment($attachment['path'], mime_content_type($attachment['path']), $attachment['name'], true, 'base64', 'attachment', $message_charset);
      $MAIL_MIME->addAttachment($attachment['path'],
        rc_mime_content_type($attachment['path'], $attachment['mimetype']),
        $attachment['name'], true, 'base64',
        'attachment', $message_charset);
    }
  }