### Roundcubemail介绍
*RoundCube Webmail是一个基于浏览器,支持多国语言的IMAP客户端,操作界面看起像一个桌面应用程序
它提供一个e-mail客户端应该具备的所有功能包括MIME支持,地址薄,文件夹操作,信息搜索和拼写检查。RoundCube Webmail采用PHP+Ajax开发并且需要MySQL数据库来存储数据。 用户界面采用XHTML+CSS2设计。*
### 安装LAMP
参考[邮件服务器之postfix+dovecot+postfixadmin+TLS](https://ynotes.cn/blog/article_detail/143)中的`LAMP`部分
### 安装Roundcubemail(1.3.7版本)
下载地址: `https://roundcube.net/`
```bash
$ wget https://github.com/roundcube/roundcubemail/releases/download/1.3.7/roundcubemail-1.3.7-complete.tar.gz
$ tar -xf roundcubemail-1.3.7-complete.tar.gz -C /var/www/html/
$ cd /var/www/html/
$ mv roundcubemail-1.3.7 webmail
```
### 浏览器访问`http://roundcube_server_ip/webmail/installer/`


上面提示时区没有配置
```bash
$ vim /etc/php.ini
```
```
date.timezone = Asia/Shanghai
```







### 配置插件
```bash
$ vim /var/www/html/webmail/config/config.inc.php
```
```
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['product_name'] = 'unotes.co Webmail';
$config['plugins'] = array('attachment_reminder', 'autologon', 'emoticons', 'enigma', 'filesystem_attachments', 'markasjunk', 'newmail_notifier', 'password', 'show_additional_headers', 'userinfo', 'virtuser_file','virtuser_query', 'zipdownload');
$config['password_dovecotpw'] = '/usr/bin/doveadm pw';
$config['password_dovecotpw_method'] = 'CRAM-MD5';
$config['password_dovecotpw_with_method'] = false;
$config['password_force_new_user'] = true;
$config['password_driver'] = 'sql';
//下面配置postfix库的访问账号
$config['password_db_dsn'] = 'mysql://username:password@localhost/postfix';
```
### 添加automatic_addressbook插件(自动补全已发送过的邮件地址)
#### 安装插件
```bash
$ cd /var/www/html/webmail/plugins
$ wget https://github.com/sblaisot/automatic_addressbook/archive/master.zip
$ tar xvf master.zip
$ rm master.zip
$ mv automatic_addressbook-master automatic_addressbook
$ chown -R apache.apache automatic_addressbook
```
#### 添加插件相关的表
```bash
mysql>use roundcubemail;
mysql>source automatic_addressbook/SQL/mysql.initial.sql;
```
#### 修改config配置
```bash
$ vim /var/www/html/webmail/config/config.inc.php
```
```
$config['plugins'] = array('attachment_reminder', 'autologon', 'emoticons', 'enigma', 'automatic_addressbook', 'filesystem_attachments', 'markasjunk', 'newmail_notifier', 'password', 'show_additional_headers', 'userinfo', 'virtuser_file','virtuser_query', 'zipdownload');
```
#### 重启服务
```bash
$ /etc/init.d/httpd restart
```
### 登录webmail `http://mail.unotes.co/webmail`

### 配置SSL
增加ssl.conf
```bash
/etc/httpd/conf.d/ssl.conf
```
```
<VirtualHost *:80>
ServerName mail.unotes.co
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>
```
```
LoadModule ssl_module modules/mod_ssl.so
Listen 443
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
DocumentRoot "/var/www/html"
ServerName mail.unotes.co
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl/mail.unotes.co.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/mail.unotes.co.key
SSLCertificateChainFile /etc/httpd/conf/ssl/ca.crt
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
```
重定向80->443
```bash
$ vim /etc/httpd/conf/httpd.conf
```
拷贝证书到/etc/httpd/conf/ssl
```bash
$ cp /etc/postfix/ssl/* /etc/httpd/conf/ssl
```
重启服务
```bash
$ /etc/init.d/httpd restart
```
访问 `https://mail.unotes.co/webmail/`
