如何熟悉WebMail Roundcube的配置?

WebMail

1 基础知识

1.1 搭建环境

阅读本章的参数,你需要先搭建WebMail Roundcube的环境,详细请参阅,
https://www.cmdschool.org/archives/2731

1.2 参数文件的位置

vim /var/www/mail.cmdschool.org/config/config.inc.php

注:本章所有配置皆应写于以上配置文件,后面将不再详述。

2 参数的翻译

<?php
// ---------------------------------------------------------------------
// 警告: 不要编辑该配置文件! 复制该配置到 config.inc.php.
// ---------------------------------------------------------------------

/*
 +-----------------------------------------------------------------------+
 | 以下所有配置都是默认配置选项                                            |
 |                                                                       |
 | 此文件属于Roundcube Webmail客户端的一部分                               |
 | 版权所有(C) 2005-2018, Roundcube开发团队                               |
 |                                                                       |
 | 根据GNU通用公共许可证版本3或者任何以后版本授权,皮肤和插件例外            |
 | 完整的授权声明,请参阅自述文件                                          |
 +-----------------------------------------------------------------------+
*/

$config = array();

// ----------------------------------
// SQL 数据库
// ----------------------------------

// 数据库连接字符串(DSN)用于配置连接数据库以便于读写操作
// 格式(与PEAR MDB2): db_provider://user:password@host/database
// 目前支持数据库驱动(db_providers): mysql, pgsql, sqlite, mssql, sqlsrv, oracle
// 相关实例请参阅:http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
// 注意: 对于SQLite请使用结对路径(Linux): 'sqlite:////full/path/to/sqlite.db?mode=0646'
// 或者(Windows): 'sqlite:///C:/full/path/to/sqlite.db'
$config['db_dsnw'] = 'mysql://roundcube:@localhost/roundcubemail';

// 用于只读操作的数据库DSN(如果使用空写入数据库)
// 对数据库复制很有用
$config['db_dsnr'] = '';

// 禁用已经建立的dsnw连接的后续读取
$config['db_dsnw_noread'] = false;

// 使用持久的数据库连接方式
// 请小心,这不一定能达到预期
// 请参阅: http://www.php.net/manual/en/features.persistent-connections.php
$config['db_persistent'] = false;

// you can define specific table (and sequence) names prefix
// 允许你指定特定的表前缀
$config['db_prefix'] = '';

// 映射表名称和连接用于所有数据库操作
// 此选项可用于配置数据库复制和数据库master
// where read/write access to cache tables should not go to master.
// 针对于缓存表的读写访问不能转到master
$config['db_table_dsn'] = array(
//    'cache' => 'r',
//    'cache_index' => 'r',
//    'cache_thread' => 'r',
//    'cache_messages' => 'r',
);

// 此选项可指定数据库变量值,例如,这里的某些限制
// 如果你的服务不是MySQL或者希望有更好的性能,请使用以下参数
// 例如,Roundcube使用max_allowed_packet的值(以字节为单位)
// 此限制数据库缓存操作的查询大小
$config['db_max_allowed_packet'] = null;

// ----------------------------------
// 日志或调试
// ----------------------------------

// 日志驱动:  'syslog', 'stdout' 或 'file'.
$config['log_driver'] = 'file';

// 用于日志条目的日期格式
// (请参阅:http://php.net/manual/en/function.date.php)  
$config['log_date_format'] = 'd-M-Y H:i:s O';

// 用于定义每个日志行的会话ID长度
// 设置为0则不记录会话ID
$config['log_session_id'] = 8;

// Default extension used for log file name
// 日志文件名称的默认后缀
$config['log_file_ext'] = '.log';

// 如果使用'syslog'日志驱动,请使用Syslog ident字符串
$config['syslog_id'] = 'roundcube';

// 如果使用'syslog'日志驱动,请使用Syslog工具
// 可配置的值请参阅安装或者http://php.net/manual/en/function.openlog.php
$config['syslog_facility'] = LOG_USER;

// 如果日志想写入到每个用户目录,请激活此选项
// 如果目录<log>/<username>存在并可写入,则记录数据日志
$config['per_user_logging'] = false;

// 日志消息将发送到<log_dir>/sendmail或者syslog
$config['smtp_log'] = true;

// 将成功或失败的登录日志记录到<log_dir>/userlogins或者syslog
$config['log_logins'] = false;

// 将会话错误记录到<log_dir>/session或syslog
$config['log_session'] = false;

// 将SQL查询记录到<log_dir>/sql或syslog
$config['sql_debug'] = false;

// 将IMAP对话记录到<log_dir>/imap或syslog
$config['imap_debug'] = false;

// 将LDAP对话记录到<log_dir>/ldap或syslog
$config['ldap_debug'] = false;

// 将SMTP对话记录到<log_dir>/smtp或syslog
$config['smtp_debug'] = false;

// 将Memcache对话记录到<log_dir>/memcache或syslog
$config['memcache_debug'] = false;

// Log APC conversation to /apc or to syslog
// 将APC对话记录到<log_dir>/apc或syslog
$config['apc_debug'] = false;

// 将Redis对话记录到<log_dir>/redis或syslog
$config['redis_debug'] = false;

// ----------------------------------
// IMAP
// ----------------------------------

// 此处选择执行登录的IMAP主机
// 留空将会在登录时显示文本框让你提供主机列表
// 显示主机列表的下拉菜单或者设置主机字符串
// 使用SSL/TLS连接, 请输入主机前缀ssl://或tls://
// 支持使用变量:
// %n - 主机名称,$_SERVER['SERVER_NAME']
// %t - 主机名称,不包含前缀
// %d - 域名,不包含前缀的http主机名称$_SERVER['HTTP_HOST']
// %s - 域名,登录屏幕提供的电子邮件地址中的'@'后的域名
// 例如 %n = mail.domain.tld, %t = domain.tld
// 警告: 更改主机名称后,用户表中的mail_host列需要将旧的用户数据记录与新的主机重新匹配
$config['default_host'] = 'localhost';

// 使用TCP连接的IMAP端口
$config['default_port'] = 143;

// IMAP认证方法 (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN或null).
// 使用'IMAP'通过IMAP LOGIN命令去认证
// 默认情况下,将选择最安全的方法
$config['imap_auth_type'] = null;

// IMAP套接字上下文选项
// 请参阅:http://php.net/manual/en/context.ssl.php
// 以下实例启用服务器证书验证
//$config['imap_conn_options'] = array(
//  'ssl'         => array(
//     'verify_peer'  => true,
//     'verify_depth' => 3,
//     'cafile'       => '/etc/openssl/certs/ca.crt',
//   ),
// );
// 注意: 此选项亦可由hostname索引选项的数组指定
$config['imap_conn_options'] = null;

// IMAP连接超时时间,单位秒,默认值0 (用于default_socket_timeout)
$config['imap_timeout'] = 0;

// 可选的IMAP身份认证标识,用于代理认证
$config['imap_auth_cid'] = null;

// 可选的IMAP身份认证密码,用于imap_auth_cid的密码
$config['imap_auth_pw'] = null;

// 如果你知道imap的文件夹分隔符,你可以在此指定它
// 否者将自动指定
$config['imap_delimiter'] = null;

// 如果你知道imap的文件夹供应商,你可以再次指定它
// 否者他将自动指定,请使用小写标识符
// 例如, 'dovecot', 'cyrus', 'gmail', 'hmail', 'uw-imap'
$config['imap_vendor'] = null;

// 如果IMAP服务器不支持命名空间(NAMESPACE)扩展,
// 但是你使用非空的共享文件夹或者个人根文件夹,
// 你需要设置这些选项,指定的值可以使字符串或者字符串数组。
// 注意: 文件夹需要一目录分隔符结束,例如"INBOX."(特殊目录"~"例外)
// 注意: 选项可用于覆盖服务器的命名空间
// 注意: 选项设置为FALSE则禁止访问指定的命名空间
$config['imap_ns_personal'] = null;
$config['imap_ns_other']    = null;
$config['imap_ns_shared']   = null;

// 默认情况下IMAP的功能是读取caps后连接到IMAP服务器
// 某种情况下,例如当使用IMAP代理,需要刷新列表后登录
// 如果是这种情况,请设置为True
$config['imap_force_caps'] = false;

// 默认情况下,订阅文件夹列表使用的是LIST-EXTENDED扩展(如果可用)
// 某种情况下,某些服务器(dovecot 1.x)为共享的命名空间返回错误结果
// https://github.com/roundcube/roundcubemail/issues/2474
// 启用该选项可强制使用LSUB命令
// 不推荐的情况: 当使用imap_disabled_caps = array('LIST-EXTENDED')时
$config['imap_force_lsub'] = false;

// 某些服务配置(例如Courier)不会列出命名空间的文件夹
// 启用该选项可强制列出命名空间的文件夹
$config['imap_force_ns'] = false;

// 某些服务器返回来自于用户家目录的隐藏的文件夹(名字以点开头)
// IMAP RFC没有禁止这种情况
// 启用此选项可隐藏并杜绝这种可能
$config['imap_skip_hidden_folders'] = false;

// 某些服务器不支持包含文件夹和邮件文件夹
// 如果你的服务器支持使用true,否则使用false
// 默认情况下他是自动确定的(每个用户会话一次)
$config['imap_dual_use_folders'] = null;

// 禁用imap扩展名列表
// 适用于,如果你的IMAP服务器某些功能的实现损坏
// 和你不能删除服务器端的CAPABILITY字符串
// 例如,UW-IMAP服务器的ESEARCH已经损坏
// 注意: 因为列表已缓存,因此你更改后需要重新登录
$config['imap_disabled_caps'] = array();

// 每次IMAP登陆后,记录IMAP会话标识
// 适用于将IMAP会话与Roundcube用户会话关联
$config['imap_log_session'] = false;

// IMAP索引的缓存类型,支持值:'db', 'apc' 和 'memcache'
$config['imap_cache'] = null;

// 开启消息缓存,只支持'db'缓存
// 选项需要IMAP服务器支持QRESYNC和CONDSTORE
// 扩展(RFC7162). 请参阅program/lib/Roundcube/rcube_imap_cache.php的synchronize()
// 用于参阅详细信息或者解决同步问题
$config['messages_cache'] = false;

// IMAP索引缓存的生命周期,可用单位s, m, h, d, w
$config['imap_cache_ttl'] = '10d';

// IMAP消息缓存的生命周期,可用单位s, m, h, d, w
$config['messages_cache_ttl'] = '10d';

// 最大缓存消息大小(单位KB)
// 注意: 在MySQL,这应该小于 (max_allowed_packet - 30%)
$config['messages_cache_threshold'] = 50;

// ----------------------------------
// SMTP
// ----------------------------------

// SMTP服务器主机 (用于发送邮件)。
// 输入主机名称的前缀 tls://去使用STARTTLS命令或使用
// 前缀ssl:// 不推荐使用基于SSL的SMTP (亦称SMTPS)
// 支持的替代变量:
// %h - 用户的IMAP主机名称
// %n - 主机名称($_SERVER['SERVER_NAME'])
// %t - 主机名称,不包含前缀
// %d - 域名(不包含http主机名称的前缀,$_SERVER['HTTP_HOST'])
// %z - IMAP域名(不包含IMAP主机名称的前缀)
// 例如 %n = mail.domain.tld, %t = domain.tld
$config['smtp_server'] = 'localhost';

// SMTP端口 (默认是587)
$config['smtp_port'] = 587;

// 如果你使用%u作为Roudcube的用户名,则使用SMTP用户名(如果需要)
// 将使用当前用户名进行登录
$config['smtp_user'] = '%u';

// 如果你使用%p作为Roudcube的用户密码,则使用SMTP用户密码(如果需要)
// 将使用当前用户的密码进行登录
$config['smtp_pass'] = '%p';

// SMTP AUTH的类型 (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN 或 empty 去匹配服务器支持的类型)
$config['smtp_auth_type'] = null;

// 可选的SMTP代理认证身份标识
$config['smtp_auth_cid'] = null;

// 可选的SMTP代理认证身份标识的密码
$config['smtp_auth_pw'] = null;

// SMTP HELO 主机
// 给远程服务器提供SMTP 'HELO'或'EHLO'消息的主机名称
// 如果没有定义或留空,你将获得服务器变量'server_name'或'localhost'
$config['smtp_helo_host'] = '';

// SMTP连接超时,以秒为单位。 默认值:0 (使用default_socket_timeout)
// 注意: 当使用SSL连接存在一个已知的问题,timeout > 0将导致连接错误
//       (https://bugs.php.net/bug.php?id=54511)
$config['smtp_timeout'] = 0;

// SMTP套接字上下文选项
// 请参阅http://php.net/manual/en/context.ssl.php
// 以下示例启用服务器证书认证和需要'smtp_timeout'值非零
// $config['smtp_conn_options'] = array(
//   'ssl'         => array(
//     'verify_peer'  => true,
//     'verify_depth' => 3,
//     'cafile'       => '/etc/openssl/certs/ca.crt',
//   ),
// );
// 注意: 选项可以指定为由主机可选的索引数组
$config['smtp_conn_options'] = null;

// ----------------------------------
// LDAP
// ----------------------------------

// LDAP缓存的类型. 支持的值: 'db', 'apc' and 'memcache'.
$config['ldap_cache'] = 'db';

// LDAP缓存的生命周期. 可用的单位: s, m, h, d, w
$config['ldap_cache_ttl'] = '10m';

// ----------------------------------
// 缓存
// ----------------------------------

// 使用此配置主机访问memcached
// 格式可定义任意数量的主机hostname:port或unix:///path/to/socket.file
$config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' );

// 控制持久连接到memcache服务器
// 请参阅http://php.net/manual/en/memcache.addserver.php
$config['memcache_pconnect'] = true;

// 以秒为单位用户控制连接守护进程
// 请参阅http://php.net/manual/en/memcache.addserver.php
$config['memcache_timeout'] = 1;

// 控制多久之后失败服务器将重试 (以秒为单位).
// 该参数设置为-1禁止自动重试.
// 请参阅http://php.net/manual/en/memcache.addserver.php
$config['memcache_retry_interval'] = 15;

// 使用此配置主机去访问Redis.
// 目前只支持一台主机. 将来的版本中可能会提供对集群的支持.
// 你可以传递4个字段,host、port、database和password.
// 未设置字段将设置默认值,host=127.0.0.1, port=6379, database=0, password=  (empty)
$config['redis_hosts'] = null; // e.g. array( 'localhost:6379' );  array( '192.168.1.1:6379:1:secret' );

// memcache缓存对象的最大值 (以字节为单位). 默认: 2MB
$config['memcache_max_allowed_packet'] = '2M';

// APC缓存对象的最大值 (以字节为单位). 默认: 2MB
$config['apc_max_allowed_packet'] = '2M';

// Redis对象缓存的最大值(in bytes). Default: 2MB
$config['redis_max_allowed_packet'] = '2M';

// ----------------------------------
// SYSTEM
// ----------------------------------

// 该选项将允许安装程序运行并显示敏感的配置数据
// 如果你清楚自己的行为带来的后果,请启用他们。
$config['enable_installer'] = false;

// 不允许用户覆盖某些配置
$config['dont_override'] = array();

// 禁止列出UI元素或功能
$config['disabled_actions'] = array();

// 定义列出'advanced'区块下的那些配置
// 默认隐藏
$config['advanced_prefs'] = array();

// 提供一个URL让用户在里面获得Roundcube的安装支持
// 请不要在这里连接到ROUNDCUBE.NET
$config['support_url'] = '';

// 使用此图片替换Roundcube logo
// 指定相对于Roundcube的安装文档根目录的URL
// 数组可用于特殊的模板文件指定不同的logo
// 使用'*'则是默认logo
// ':favicon'定义favicon
// ':print'定义所有打印模板的logo(例如messageprint、contactprint)
// ':small'定义Elastic的小屏幕logo
// 可通过在皮肤名称前加箭头键来为不同的skins指定不用的logo
// 按顺序应用配置: <skin>:<template>,<skin>:*,<template>,*
// 例如array("*" => "/images/roundcube_logo.png", "messageprint" => "/images/roundcube_logo_print.png", "elastic:*" => "/images/logo.png")
$config['skin_logo'] = null;

// 第一次登录是创建新的Roundcube用户
// 当IMAP登录成功将创建一个新用户
// 如果只有注册用户可以使用此服务,则设置为false
$config['auto_create_user'] = true;

// 开启允许使用email地址作为用户身份登录
$config['user_aliases'] = false;

// 使用此文件夹存储日志文件
// 必须对运行PHP进程的用户可写 (如使用mod_php的Apache用户)
// 此处使用文件的日志驱动.
$config['log_dir'] = RCUBE_INSTALL_PATH . 'logs/';

// 使用此文件夹存储临时文件
// 必须对运行PHP进程的用户可写 (如使用mod_php的Apache用户)
$config['temp_dir'] = RCUBE_INSTALL_PATH . 'temp/';

// 48小时候temp_dir中的文件失效
// 可用的单位: s, m, h, d, w
$config['temp_dir_ttl'] = '48h';

// 强制连接使用https
// 启用该选项,所有非安全连接将被重定向
// 如果不是默认的HTTP_HOST:443,他可以定义port number, hostname或hostname:port
$config['force_https'] = false;

// 告诉PHP它应该在安全连接下工作
// 即使不能识别其为安全($_SERVER['HTTPS']未设置)
// 例如,当你在https代理后面运行Roundcube
// 此选项与'force_https'相互排斥且只能设置其中一个为true.
$config['use_https'] = false;

// 允许浏览器在登录表单上自动补全
// 0 - 禁用, 1 - 用户名和主机, 2 - 用户名、主机、密码
$config['login_autocomplete'] = 0;

// 强制登录转换为小写
// 0 - 禁用, 1 - 仅域名, 2 - 域名和邮箱账号
// 如果用户身份认证不区分大小写,则必须启用
// 注意: 启用后,所有用户记录都需要更新,例如查询:
//       UPDATE users SET username = LOWER(username);
$config['login_lc'] = 2;

// 登录的用户名和密码最大长度(字节为单位)
$config['login_username_maxlen'] = 1024;
$config['login_password_maxlen'] = 1024;

// 登录用户名过滤器,用户preg_match()的正则表达式。
// 例如: '/^[a-z0-9_@.-]+$/'
$config['login_username_filter'] = null;

// 暴力攻击预防
// 改值指定每分钟失败登录尝试的最大次数
$config['login_rate_limit'] = 3;

// 引入的应解析为PHP文件
$config['skin_include_php'] = false;

// 登录屏幕显示的产品名称和软件版本号
// 0 - 隐藏版本名称和软件版本号, 1 - 只显示产品名称, 2 - 显示版本名称和软件版本号
$config['display_product_info'] = 1;

// Session的生命周期(分钟为单位)
$config['session_lifetime'] = 10;

// Session的域名: .example.org
$config['session_domain'] = '';

// Session的名称. 默认: 'roundcube_sessid'
$config['session_name'] = null;

// Session认证cookie名称. 默认: 'roundcube_sessauth'
$config['session_auth_name'] = null;

// Session路径. 默认为PHP的session.cookie_path设置
$config['session_path'] = null;

// 用于session的后端存储. 可选'db' (默认)、'redis'、'memcache'或'php'
//
// 如果设置为'memcache', 需要在'memcache_hosts'中指定服务器列表
// 确保Memcached的扩展已经安装(http://pecl.php.net/package/memcache)版本 >= 2.0.0
//
// 如果设置为'redis', 需要在'redis_hosts'中指定服务器
// 确保Redis的扩展已经安装(http://pecl.php.net/package/redis)版本 >= 2.0.0
//
// 设置此值为'php'将使用PHP中设置的默认的session保存处理程序
$config['session_storage'] = 'db';

// 可信代理列表
// 仅接受从这些IP地址的X_FORWARDED_*和X_REAL_IP标头
$config['proxy_whitelist'] = array();

// 可信的主机名称列表
// 攻击者可以修改HTTP请求的主机头,导致$_SERVER['SERVER_NAME']
// 或者$_SERVER['HTTP_HOST']变量指向一个不同的可用主机去手机用户名和密码
// 某些服务器会阻止,但不是全部都会,一个空列表会接收任何主机。
// 该列表可以包含主机名或PCRE模式(不包含//分隔符,这将自动添加).
$config['trusted_host_patterns'] = array();

// session授权中检查客户端IP
$config['ip_check'] = false;

// 检查传入请求引用
$config['referer_check'] = false;

//发送X-Frame-Options HTTP头值以防止点击劫持(Clickjacking)
// 可能值: sameorigin|deny|allow-from .
// 设置为false以禁止发送标头
$config['x_frame_options'] = 'sameorigin';

// 此键用于加密的目的,例如imap的密码存储
// 在会话中,由于历史原因,它称为DES_key,但是已经被使用
// 关于cipher_method配置 (参考下文).
$config['des_key'] = 'rcmail-!24ByteDESkey*Str';

// 加密算法,你可以使用支持openssl的任何方法
// 默认设置是向后兼容DES-EDE3-CBC,
// 但你可以选择我们认为更好的,例如AES-256-CBC
$config['cipher_method'] = 'DES-EDE3-CBC';

// 自动添加此域名到用户名用于登录
// 仅适用于需要完整e-mail地址才能登录的IMAP服务器
// 指定一个包含'host' => 'domain'值的数组以主持多主机
// 支持替换变量:
// %h - 用户的IMAP主机
// %n - 主机名称($_SERVER['SERVER_NAME'])
// %t - 主机名称,不包含前缀
// %d - 域名(http主机$_SERVER['HTTP_HOST'],不包含前缀)
// %z - IMAP域名 (IMAP主机,不包含前缀)
// 例如%n = mail.domain.tld, %t = domain.tld
$config['username_domain'] = '';

// 强制登录域使用username_domain的配置
// 用户名中的任何域将由username_domain替换
$config['username_domain_forced'] = false;

// 此域将被用于新用户的e-mail地址
// 指定一个包含'host' => 'domain'的属组值以支持多主机
// 支持替换的变量:
// %h - 用户的IMAP主机
// %n - http主机名($_SERVER['SERVER_NAME'])
// %d - 域(http主机名,不包含前缀)
// %z - IMAP域 (IMAP主机名,不包含前缀)
// 例如%n = mail.domain.tld, %t = domain.tld
$config['mail_domain'] = '';

// 密码字符集
// 如果身份认证的后端支持,请使用"UTF-8"
// 否则,请使用适当的字符集
// 为了向后兼容默认为ISO-8859-1
$config['password_charset'] = 'ISO-8859-1';

// 用户之间发送电子邮件多少秒必须通过
$config['sendmail_delay'] = 0;

// 邮件大小限制,注意SMTP服务器可能使用不同的值
// 此限制是校验用户附加文件到撰写的邮件消息
// 大小以字节为单位 (可用的单位后缀: K, M, G)
$config['max_message_size'] = '100M';

// 每封邮件的最大收件人数量(包含To、Cc、Bcc)
// 默认: 0 (没有限制)
$config['max_recipients'] = 0;

// 每封邮件的最大收件人数量(不包括Bcc)
// 这是软限制, 这意味我们只向用户显示警告
// 默认值: 5
$config['max_disclosed_recipients'] = 5;

// 最大允许的地址组成员的数量,默认: 0 (没有限制)
// 如果'max_recipients'已设置,值应该小于或等于此值
$config['max_group_members'] = 0;

// 命名你的服务,这将显示在登录屏幕或窗口标题
$config['product_name'] = 'Roundcube Webmail';

// 当发送时,增加此user-agent到邮件头
$config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION;

// 尝试加载特定的主机配置
// 请参阅https://github.com/roundcube/roundcubemail/wiki/Configuration:-Multi-Domain-Setup
// 了解更多的详情
$config['include_host_config'] = false;

// 路径指向的文本文件将被添加到每个发送的邮件
// 路径是相对于Roundcube的根文件夹
$config['generic_message_footer'] = '';

// 路径指向的html文件将被添加到每个发送的邮件
// 路径是相对于Roundcube的根文件夹
$config['generic_message_footer_html'] = '';

// 添加收到的包含创建者IP和主机名数据头到外发邮件中
$config['http_received_header'] = false;

// 是否加密IP地址和主机名
// 这可能在某些圈子被视为敏感信息
// 无论如何,对于管理员,这可能是非常宝贵的帮助
// 当追踪问题时.
$config['http_received_header_encrypt'] = false;

// 当封装文本时行允许的字符数
// 当撰写或发送消息文本时封装换行
$config['line_length'] = 72;

// 以format=flowed方式发送纯文本邮件
$config['send_format_flowed'] = true;

// 根据RFC2298, 回执信封发送地址必须为空
// 如果此选项为true, Roundcube将使用另一个信封发送用户身份作为MDN响应
$config['mdn_use_from'] = false;

// 设置身份响应级别:
// 0 - 允许编辑所有参数的许多身份标识
// 1 - 允许编辑所有参数但不是email地址的许多身份标识
// 2 - 允许编辑所有参数的单独身份标识
// 3 - 允许编辑所有参数但不是email地址的单独身份标识
// 4 - 允许编辑只签名的单独身份标识
$config['identities_level'] = 0;

// 上传图像最大规格(KB为单位)
// 图像(在html标签中)作为URI存储成数据库数据
$config['identity_image_size'] = 64;

// 浏览器支持的Mimetypes
// 这些类型的附件将在预览窗口中打开
// 以逗号分隔的列表或数组: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf'
$config['client_mimetypes'] = null;  # null == default

// PHP的finfo扩展的本地mine magic数据库文件路径
// 如果设置为null则使用默认路径
$config['mime_magic'] = null;

// 到本地mime.types映射表文件的绝对路径
// 这是用于从文件扩展派生mime-types,反之亦然
// 这样的文件通常是apache web服务的一部分,如果你在你系统不能找到名称为mime.types的文件
// 请从http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types下载
$config['mime_types'] = null;

// imagemagick二进制标识的路径(如果没有设置将使用Imagick或GD扩展)
$config['im_identify_path'] = null;

// imagemagick转换二进制标识的路径(如果没有设置将使用Imagick或GD扩展)
$config['im_convert_path'] = null;

// 源于图像附件的显示在邮件内容下方的缩略图大小
// 注意: 图像是否显示完整依赖于'inline_images'选项
// 设置为0则显示原始尺寸
$config['image_thumbnail_size'] = 240;

// 基于像素的联系人照片最大规格
$config['contact_photo_size'] = 160;

// 开启DNS检查以验证e-mail地址
$config['email_dns_check'] = false;

// 禁止保存发送消息到发件箱(类似gmail) (默认: false)
// 注意: 当SMTP服务器保存用户发送的mail到发件箱时有用
$config['no_save_sent_messages'] = false;

// 使用带安全token的特殊URL提高系统安全性
// 此项可设置为定义token长度的数字,默认: 16.
// 警告: 此项需要http服务器配置,样例:
//    RewriteRule ^/roundcubemail/[a-zA-Z0-9]{16}/(.*) /roundcubemail/$1 [PT]
//    Alias /roundcubemail /var/www/roundcubemail/
// 注意: 使用assets_path不会妨碍浏览器缓存assets
$config['use_secure_urls'] = false;

// 允许为image、js、css定义单独的server或path
// 警告: 如果此域对某些域是不同的跨域访问权限
// 需要允许资源
// 样例:
//    
//    Header set Access-Control-Allow-Origin "*"
//    
$config['assets_path'] = '';

// 虽然assets_path用于浏览器,assets_dir会通知
// PHP代码大致在文件系统中的asset文件的位置
$config['assets_dir'] = '';

// ----------------------------------
// 插件
// ----------------------------------

// 激活的插件列表(在plugins目录中)
$config['plugins'] = array();

// ----------------------------------
// 用户界面
// ----------------------------------

// 默认消息排序,使用“null”则默认排序,
// 或'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc'
$config['message_sort_col'] = '';

// 默认邮件排序
$config['message_sort_order'] = 'DESC';

// 以下列显示在消息列表中,可用的列如下,
// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, priority
$config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment');

// 默认本地化设置(留空则自动检测)
// RFC1766格式语言名称,类似 en_US, de_DE, de_CH, fr_FR, pt_BR
$config['language'] = null;

// 使用此格式进行日期显示(date或strftime格式)
$config['date_format'] = 'Y-m-d';

// 将此日期格式选项提供给用户选择
// 注意: 不要使用类似m/d/Y此类模糊的格式
$config['date_formats'] = array('Y-m-d', 'Y/m/d', 'Y.m.d', 'd-m-Y', 'd/m/Y', 'd.m.Y', 'j.n.Y');

// 使用此格式进行时间显示(date或strftime格式)
$config['time_format'] = 'H:i';

// 将此时间格式选项提供给用户选择
$config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A');

// 使用此格式进行短日期显示(从date_format和time_format派生)
$config['date_short'] = 'D H:i';

// 使用此格式进行详细日期显示(从date_format和time_format派生)
$config['date_long'] = 'Y-m-d H:i';

// 此邮箱存储草稿邮件
// 如果草稿邮件不需要存储,请留空
// 注意: 使用带名称空间前缀的文件夹名称(在Courier-IMAP为INBOX.)
$config['drafts_mbox'] = 'Drafts';

// 此邮箱存储垃圾邮件
// 注意: 使用带名称空间前缀的文件夹名称(在Courier-IMAP为INBOX.)
$config['junk_mbox'] = 'Junk';

// 此邮箱存储发送的邮件
// 如果发送的邮件不需要存储,请留空
// 注意: 使用带名称空间前缀的文件夹名称(在Courier-IMAP为INBOX.)
$config['sent_mbox'] = 'Sent';

// 当删除时,邮件移动到此文件夹
// 留空则直接删除
// 注意: 使用带名称空间前缀的文件夹名称(在Courier-IMAP为INBOX.)
$config['trash_mbox'] = 'Trash';

// 在用户登录时自动创建以上列出的默认文件夹
$config['create_default_folders'] = false;

// 保护默认文件夹不被renames、deletes和subscription changes
$config['protect_default_folders'] = true;

// 禁止本地化以上列出的默认文件夹
$config['show_real_foldernames'] = false;

// 如果在你的系设置配额为true(0)则意味着没有限制
$config['quota_zero_as_unlimited'] = false;

// 使用内置拼写检查程序,他基于GoogieSpell
$config['enable_spellcheck'] = true;

// 启用拼写检查异常字典
// 将其设置为'shared'则所有用户共享字典
$config['spellcheck_dictionary'] = false;

// 设置拼写检查引擎,可用值:
// - 'googie'  - 默认值(也用于连接Nox Spell Server,请参阅'spellcheck_uri'设置)
// - 'pspell'  - 需要安装PHP Pspell模块和aspell
// - 'enchant' - 需要PHP Enchant模块
// - 'atd'     - 使用它们的API之前,安装持有的Deadline服务器
//               或联系http://www.afterthedeadline.com上的人员核实
// 由于Google关闭了他们的公共拼写检查服务,因此默认设置
// 连接到http://spell.roundcube.net,这是Roundcube提供的托管服务.
// 你可以通过设置'spellcheck_uri'来连接到任何其他的googie兼容服务
$config['spellcheck_engine'] = 'googie';

// 对于本地安装Nox Spell服务或Deadline服务,
// 请指定URI调用它.
// 从http://orangoo.com/labs/?page_id=72获取Nox Spell服务或
// 之后从http://www.afterthedeadline.com获取Deadline包 
// 留空则使用service.afterthedeadline.com公共API
$config['spellcheck_uri'] = '';

// 可以选择这些语言进行拼写检查
// 配置为PHP样式的hash数组: array('en'=>'English', 'de'=>'Deutsch');
// 留空则使用可用语言的默认设置
$config['spellcheck_languages'] = NULL;

// 使用大写字母的单词都被忽略(例如 GOOGLE)
$config['spellcheck_ignore_caps'] = false;

// 使用数字字母的单词都被忽略(例如 g00gle)
$config['spellcheck_ignore_nums'] = false;

// 使用带符号字母的单词都被忽略(例如 g@@gle)
$config['spellcheck_ignore_syms'] = false;

// 被视为包含签名的消息末尾行数
// 如果签名不正确和着色则增加此值
$config['sig_max_lines'] = 15;

// 如设置,请不要让用户设置分页大小大于此值
$config['max_pagesize'] = 200;

// 用户的'refresh_interval'的最小值(以秒为单位)
$config['min_refresh_interval'] = 60;

// 启用文件上传指示器,需要安装APC并启用apc.rfc1867选项
// 默认情况下刷新时间设置为1秒,你可以设置此值为true
// 或表示秒数的任何证书值
$config['upload_progress'] = false;

// 指定多少秒撤销按钮将可用
// 对象删除操作之后,当前用于支持地址簿的源
// 设置为0,则禁用该功能
$config['undo_timeout'] = 0;

// 相对用户来说不变的静态预设响应列表
$config['compose_responses_static'] = array(
//  array('name' => 'Canned Response 1', 'text' => 'Static Response One'),
//  array('name' => 'Canned Response 2', 'text' => 'Static Response Two'),
);

// ----------------------------------
// 地址簿设置
// ----------------------------------

// 此表明使用那种类型的地址簿. 可能的选择:
// 'sql' (默认), 'ldap' and ''.
// 如果设置为'ldap'则将使用首个可写的LDAP查看。
// 地址簿作为主要地址簿,他不会显示这些
// SQL地址簿在'Address Book'里显示.
// 如果设置为''则不显示地址簿或仅仅是地址簿
// 地址簿由插件(如CardDAV)创建.
$config['address_book_type'] = 'sql';

// 为了启用公共ldap搜索,配置类似Verisign的数组
// 如下进一步的范例.如果你想去测试,只要取消注解的范例.
// 数组的键值必须只包含安全的字符, 例如 a-zA-Z0-9_
$config['ldap_public'] = array();

// 如果你是想要为个人地址簿使用LDAP,你要去
// 设置'user_specific'为true 并使用此值生成适当的DN去访问它.
//
// DAP推荐的目录结构可存储所有的地址簿条目
// 用户主条目下, 例如:
//
//  o=root
//   ou=people
//    uid=user@domain
//  mail=contact@contactdomain
//
// 所以base_dn将是uid=%fu,ou=people,o=root
// 此bind_dn将类似于based_dn或某些super user登录.
/* 
 * Verisign目录配置示例
 *
$config['ldap_public']['Verisign'] = array(
  'name'          => 'Verisign.com',
  // 在主机名称中支持替换变量:
  // %h - 用户的IMAP主机名称
  // %n - 主机名称 ($_SERVER['SERVER_NAME'])
  // %t - 主机名称,不包含前缀
  // %d - 域(http主机$_SERVER['HTTP_HOST'],不包含前缀)
  // %z - IMAP域(IMAP主机名称,不包含前缀)
  // 例如 %n = mail.domain.tld, %t = domain.tld
  'hosts'         => array('directory.verisign.com'),
  'port'          => 389,
  'use_tls'       => false,
  'ldap_version'  => 3,       // 使用LDAPv3
  'network_timeout' => 10,    // connect + bind arrempts的超时(以秒为单位). 此处仅支持在PHP >= 5.3.0中使用OpenLDAP 2.x
  'user_specific' => false,   // 如果为true,则 base_dn、bind_dn和bind_pass默认使用IMAP登录.
  // 当开启'user_specific'以下变量可以在base_dn/bind_dn中配置使用:
  // %fu - 提供完整的用户名,假设用户名为email
  //       地址, 如果不是email地址则使用此username_domain值.
  // %u  - '@'之前的用户名.
  // %d  - '@'之后的域名.
  // %dc - 域名分层字符串,例如 "dc=test,dc=domain,dc=com"
  // %dn - 当使用search_filter或search_base_dn则由ldap搜索找到DN
  'base_dn'       => '',
  'bind_dn'       => '',
  'bind_pass'     => '',
  // 它可绑定个别地址簿
  // 登录用户名用于搜索绑定的DN
  'search_base_dn' => '',
  'search_filter'  => '',   // e.g. '(&(objectClass=posixAccount)(uid=%u))'
  // 如果不允许匿名搜索,在搜索之前为bind DN绑定DN和密码
  'search_bind_dn' => '',
  'search_bind_pw' => '',
  // 基于DN和过滤器,用于提供%dc变量解析用户域的根DN
  // 留空则跳过此查找并从带用名称的域派生根DN
  'domain_base_dn' => '',
  'domain_filter'  => '',
  // 替换字符串的可选映射 => 属性使用时绑定在个别地址簿
  'search_bind_attrib' => array(),  // e.g. array('%udc' => 'ou')
  // 如果搜索不能返回DN值,则默认为%dn变量的默认值
  'search_dn_default' => '',
  // 用于SASL认证代理的可选认证标识符
  // bind_dn需要为empty
  'auth_cid'       => '',
  // SASL身份认证方法 (用于proxy认证), 例如 DIGEST-MD5 
  'auth_method'    => '',
  // 标示地址簿将从列表中隐藏
  // 对于启用此选项,你仍然可以搜索或查看联系人.
  'hidden'        => false,
  // 标示如果地址簿将不列出联系人,只允许搜索.
  'searchonly'    => false,
  // 标示我们能否写入LDAP目录.
  // 如果为true则这些字段需要被填充:
  // LDAP_Object_Classes、required_fields、LDAP_rdn
  'writable'       => false,
  // 要创建的新联系人,这些要去指定的些对象类
  // (或你希望使用的任何其他类).
  'LDAP_Object_Classes' => array('top', 'inetOrgPerson'),
  // 此字段用于新条目的RDN字段
  // 作为search_field之一,基于base_dn附加到RDN
  // 到RDN插入LDAP目录
  'LDAP_rdn'       => 'cn',
  // 根据需求去构建一个新的联系人所需的字段
  // 对象类型 (可以包含对象类不需要的其他字段).
  'required_fields' => array('cn', 'sn', 'mail'),
  'search_fields'   => array('mail', 'cn'),  // fields to search in
  // 映射联系人字段到目录属性
  //   1. 对于每个属性,可指定允许的数值(限制)
  //      默认值是1,通配符*表示无限制
  //   2. 另一个可能的参数符合字段的分隔符
  //   3. 可以为为写操作定义字段格式, 例如日期字段
  //      范例: 'birthday:date[YmdHis\\Z]'
  'fieldmap' => array(
    // Roundcube  => LDAP:limit
    'name'        => 'cn',
    'surname'     => 'sn',
    'firstname'   => 'givenName',
    'jobtitle'    => 'title',
    'email'       => 'mail:*',
    'phone:home'  => 'homePhone',
    'phone:work'  => 'telephoneNumber',
    'phone:mobile' => 'mobile',
    'phone:pager' => 'pager',
    'phone:workfax' => 'facsimileTelephoneNumber',
    'street'      => 'street',
    'zipcode'     => 'postalCode',
    'region'      => 'st',
    'locality'    => 'l',
    // 如果你国家或地区是复杂对象,你需要如下去配置'sub_fields'
    'country'      => 'c',
    'organization' => 'o',
    'department'   => 'ou',
    'jobtitle'     => 'title',
    'notes'        => 'description',
    'photo'        => 'jpegPhoto',
    // 这些目前不能使用:
    // 'manager'       => 'manager',
    // 'assistant'     => 'secretary',
  ),
  // 联系子对象映射 (attribute name => objectClass(es)), 例如 'c' => 'country'
  'sub_fields' => array(),
  // 当创建一个新的记录时为以下LDAP属性自动生成值
  'autovalues' => array(
  // 'uid'  => 'md5(microtime())',               // 你可以指定PHP代码片段然后进行评估
  // 'mail' => '{givenname}.{sn}@mydomain.com',  // 或带有占位符的现有属性的复合字符串
  ),
  'sort'           => 'cn',         // 此字段用于对列表排序
  'scope'          => 'sub',        // 搜索模式: sub|base|list
  'filter'         => '(objectClass=inetOrgPerson)',      // 用于基本的列表(如果不为空)并将用于搜索查询. 例如: status=act
  'fuzzy_search'   => true,         // 服务器允许通配符搜索
  'vlv'            => false,        // 启用虚拟列表视图以更有效地取得分页数据(如果服务器支持)
  'vlv_search'     => false,        // 使用虚拟列表视图功能进行自动搜索(如果服务器支持)
  'numsub_filter'  => '(objectClass=organizationalUnit)',   // 使用VLV,我们还使用numSubOrdinates来查询记录总数.设置此过滤器去获取所有numSubOrdinates属性用于计数
  'config_root_dn' => 'cn=config',  // 使用根DN搜索配置条目(例如 vlv 索引)
  'sizelimit'      => '0',          // 启用此限制提取的条目数.设置为0表示没有限制.
  'timelimit'      => '0',          // 设置搜索花费多长的秒数.设置为0表示没有限制.
  'referrals'      => false,        // 设置LDAP_OPT_REFERRALS选项.主要用于多域Active Directory设置
  'dereference'    => 0,            // 设置LDAP_OPT_DEREF选项,以下之一: LDAP_DEREF_NEVER,、LDAP_DEREF_SEARCHING、LDAP_DEREF_FINDING、LDAP_DEREF_ALWAYS
                                    // 使用哪些地址簿包含别名到LDAP树对象的其他地方
  // 定义联系人组(如果没有组是支持的,则取消注释)
  // for the groups base_dn, the user replacements %fu, %u, %d and %dc work as for base_dn (see above)对于组base_dn,用户替换%fu、 %u、%d和%dc,工作方式类似于base_dn(参见上文)
  // 如果组base_dn为空,则联系人base_dn用于该组也合适
  // -> 在这种情况,确保由于关注过滤器而将组和联系人分开!
  'groups'  => array(
    'base_dn'           => '',
    'scope'             => 'sub',       // 搜索模式: sub|base|list
    'filter'            => '(objectClass=groupOfNames)',
    'object_classes'    => array('top', 'groupOfNames'),   // 要分配给新组的对象类
    'member_attr'       => 'member',   // 默认成员属性的名称, 例如 uniqueMember
    'name_attr'         => 'cn',       // A要用作组名的属性
    'email_attr'        => 'mail',     // 组电子邮件地址属性(例如 mailing lists)
    'member_filter'     => '(objectclass=*)',  // 可选的过滤器用于查询组成员
    'vlv'               => false,      // 使用VLV控件列出组
    'class_member_attr' => array(      // 将组对象类映射到这些对象中使​​用的成员属性
      'groupofnames'       => 'member',
      'groupofuniquenames' => 'uniquemember'
    ),
  ),
  // 此配置替换目录树中的常规组列表
  // 一个硬编码的组列表,每个组列出具有已配置的基本DN和过滤器的条目.
  // 如果上面设置了的'groups'选项,它将显示为名为'Groups'的第一个条目.
  'group_filters' => array(
    'departments' => array(
      'name'    => 'Company Departments',
      'scope'   => 'list',
      'base_dn' => 'ou=Groups,dc=mydomain,dc=com',
      'filter'  => '(|(objectclass=groupofuniquenames)(objectclass=groupofurls))',
      'name_attr' => 'cn',
    ),
    'customers' => array(
      'name'    => 'Customers',
      'scope'   => 'sub',
      'base_dn' => 'ou=Customers,dc=mydomain,dc=com',
      'filter'  => '(objectClass=inetOrgPerson)',
      'name_attr' => 'sn',
    ),
  ),
);
*/

// 应该搜索地址簿id的有序数组
// 当填充地址自动完成服务器端字段时. 例如: array('sql','Verisign');
$config['autocomplete_addressbooks'] = array('sql');

// 在自动填充字段中键入的最小字符数
// 在搜索地址簿之前. 最利于LDAP目录使用
// 可能需要给过度广泛的搜索漫长的结果构建
$config['autocomplete_min_length'] = 1;

// 并行自动完成请求数
// 如果多于一个的地址簿, n个并行 (异步) 请求将被创建,
//每个请求将在一个地址簿中搜索.默认情况(0),所有地址簿在单个请求中搜索
$config['autocomplete_threads'] = 0;

// 最大的自动弹出条目数,默认: 15.
$config['autocomplete_max'] = 15;

// 按此顺序显示地址字段
// 可用的占位符: {street}、{locality}、{zipcode}、{country}、{region}
$config['address_template'] = '{street}
{locality} {zipcode}
{country} {region}'; // 地址簿手速匹配的模式 (包括自动完成) // 0 - 部分 (*abc*), 默认 // 1 - 严格 (abc) // 2 - 前缀 (abc*) // 注意: 对于LDAP源fuzzy_search必须启用使用'partial'或'prefix' $config['addressbook_search_mode'] = 0; // 使用的联系人列表和用于自动完成搜索的字段列表 // 警告: 这些是字段名称不是LDAP属性 (请参阅 'fieldmap' 的配置)! $config['contactlist_fields'] = array('name', 'firstname', 'surname', 'email'); // 在自动填充列表中的联系人条目模板. // 你可用的联系人字段: name、 email、organization、department、etc. // 请参阅program/steps/addressbook/func.inc相关列表 $config['contact_search_name'] = '{name} '; // ---------------------------------- // 用户偏好 // ---------------------------------- // 使用此charset作为消息编码的后备 $config['default_charset'] = 'ISO-8859-1'; // 皮肤的名字: 来自于skins/文件夹 $config['skin'] = 'larry'; // 启用标准浏览器窗口 (可作为选项卡用) // 弹出窗口的代替 $config['standard_windows'] = false; // 显示消息列表视图的最多X项 $config['mail_pagesize'] = 50; // 显示联系人视图的最多X项 $config['addressbook_pagesize'] = 50; // 用此列排序联系人 (最好是name、firstname、surname之一) $config['addressbook_sort_col'] = 'surname'; // 如何显示在列表中的联系人姓名 // 0: prefix firstname middlename surname suffix (只适用于显示名称没有设置) // 1: firstname middlename surname // 2: surname firstname middlename // 3: surname, firstname middlename $config['addressbook_name_listing'] = 0; // 使用此时区去显示日期或时间 // 有效的时区标识符在此列出: php.net/manual/en/timezones.php // 'auto'将使用浏览器的时区设置 $config['timezone'] = 'auto'; // 更喜欢的显示HTML消息 $config['prefer_html'] = true; // 显示远程资源 (内嵌图像, 样式) // 0 - 从不, 总是询问 // 1 - 询问,如果发件人不在地址簿 // 2 - 始终允许 $config['show_images'] = 0; // 在新的窗口中打开消息 $config['message_extwin'] = false; // 在新窗口中打开消息撰写表单 $config['compose_extwin'] = false; // 默认情况下编写html格式的邮件 // 0 - 从不, // 1 - 总是, // 2 - 在回复HTML邮件时, // 3 - 在转发或回复HTML邮件时 // 4 - 总是, 除了回复纯文本邮件 $config['htmleditor'] = 0; // 在浏览器本地存储保存撰写邮件的副本 // 用于当浏览器崩溃和session超时时的恢复. $config['compose_save_localstorage'] = true; // 显示漂亮的日期作为标准 $config['prettydate'] = true; // 每隔300秒保存撰写的邮件 (5分钟) $config['draft_autosave'] = 300; // 界面布局. 默认值: 'widescreen'. // 'widescreen' - 三列 // 'desktop' - 两列, 底部预览 // 'list' - 两列, 没有预览 $config['layout'] = 'widescreen'; // 查看邮件时标记为已读(以秒为单位延迟) // 如果邮件不标记为已读,设置为-1 $config['mail_read_time'] = 0; // 登出时清理垃圾箱 $config['logout_purge'] = false; // 登出时清理收件箱 $config['logout_expunge'] = false; // 在消息体下方显示附件图片 $config['inline_images'] = true; // long或non-ascii编码的附件名称: // 0 - 完全兼容RFC 2231 // 1 - 用于'name'的RFC 2047和用于'filename'参数的RFC 2231(Thunderbird的默认值) // 2 - Full 2047 compatible $config['mime_param_folding'] = 1; // 如果不显示删除消息,则设置为true // 这将导致应用程序运行缓慢 $config['skip_deleted'] = false; // 设置为true则标记已删除邮件为已读和已删除 // False将消息标记为已读状态,是不会影响已删除的消息 $config['read_when_deleted'] = true; // 设置为true将永不立刻删除邮件 // 使用'Purge'移除已标记为删除的邮件 $config['flag_for_deletion'] = false; // 自动刷新请求的默认间隔(秒为单位) // 此请求为系统状态更新,例如,检查新的邮件等, // 设置为0将禁用此功能. $config['refresh_interval'] = 60; // 如为true将检查所有文件夹最近的消息 $config['check_all_folders'] = false; // 如为true将邮件删除或移动后将显示下一封邮件 $config['display_next'] = true; // 默认邮件列表模式,'threads' 其中之一或'list' $config['default_list_mode'] = 'list'; // 0 - 不要扩展线程(threads) // 1 - 自动扩展所有线程 // 2 - 仅扩展未读邮件线程 $config['autoexpand_threads'] = 0; // 当回复时: // -1 - 不引用邮件原件 // 0 - 光标置于邮件原件下方 // 1 - 光标置于邮件原件上方(置顶发布) // 2 - 光标置于邮件原件上方(置顶发布),但不缩进引号 $config['reply_mode'] = 0; // 当从邮件回复条带原始签名时 $config['strip_existing_sig'] = true; // 显示签名: // 0 - 从不 // 1 - 永远 // 2 - 仅新邮件 // 3 - 仅转发和回复 $config['show_sig'] = 1; // 默认方式,签名根据光标位置放置(reply_mode). // 有时候置顶发起回复可能很便捷但需保持 // 签名在引号文下方(sig_below = true). $config['sig_below'] = false; // 启用将标准分隔符添加到签名 $config['sig_separator'] = true; // 在邮件体为8位字符使用MIME编码(quoted-printable) $config['force_7bit'] = false; // 搜索字段配置默认值. // 当搜索时应当考虑,数组可以包含每个文件夹标题字段列表 // 带'*'键条目代表那些没有特定列表集的所有文件夹. // 请注意此文件夹名称应与$config['*_mbox']选项同步 $config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1)); // 地址簿搜索字段配置的默认值. $config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1); // 'Delete always' // 此设置反映邮件是否应当始终删除 // 当移动到垃圾箱失败,某些设置是必须的 // 当用户超过配额且垃圾箱包含在配额中. $config['delete_always'] = false; // 直接删除邮件而不是移动到垃圾箱 $config['delete_junk'] = false; // 如果接收邮件需要一个邮件传递通知(已读回执),表现行为, // 0 = 询问用户, 1 = 自动发送, 2 = 忽略 (从不发送或询问) // 3 = 如果发件人在地址簿则自动发送, 否则询问用户 // 4 = 如果发件人在地址簿则自动发送, 否则忽略 $config['mdn_requests'] = 0; // 回执复选框的默认状态 $config['mdn_default'] = 0; // 传递状态通知复选框的默认状态 // 注意: 仅当smtp_server为非空(non-empty)才可使用 $config['dsn_default'] = 0; // 将回执放置在要回复的邮件文件夹 $config['reply_same_folder'] = false; // 设置转发功能默认模式为"forward as attachment" $config['forward_attachment'] = false; // 定义地址簿 (内部索引)为添加新联系人 // 默认这是首个可写的地址簿. // 注意: 内置地址簿使用'0'. $config['default_addressbook'] = null; // 启用发送邮件前的拼写检查. $config['spellcheck_before_send'] = false; // 跳过在自动完成的备用邮件地址 (每个联系人显示一个地址) $config['autocomplete_single'] = false; // 结合HTML邮件的默认字体. // 支持的值: Andale Mono、Arial、Arial Black、Book Antiqua、Courier New、 // Georgia、Helvetica、Impact、Tahoma、Terminal、Times New Roman、Trebuchet MS、Verdana $config['default_font'] = 'Verdana'; // 结合HTML邮件的默认字体.. // 支持的值: 8pt、10pt、12pt、14pt、18pt、24pt、36pt $config['default_font_size'] = '10pt'; // 开启显示带名称的邮件地址而不是名称(和带标题的地址) $config['message_show_email'] = false; // Reply-All按钮的默认行为: // 0 - 永远全部回复(Reply-All) // 1 - 如果邮件列表检测到则全部回复 $config['reply_all_mode'] = 0;

参阅我文档:
===============
https://github.com/roundcube/roundcubemail/blob/master/config/defaults.inc.php

没有评论

发表回复

WebMail
如何部署Roundcube imapsync插件?

1 基础知识 1.1 Roundcube imapsync 1.1.1 基本概念 – R …

WebMail
如何安装Roundcube的全局通讯录?

1 简介 地址簿,提供丰富的界面来管理你的联系人信息(保存或访问你个人或共享的地址簿) 2 最佳实践 …

WebMail
如何部署WebMail Roundcube官方移动版?

1 基础知识 1.1 前言 Roundcube Webmail 1.4-beta是具有里程碑性质的一 …