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
没有评论