Talk:Virtual user mail system with Postfix, Dovecot and Roundcube

From ArchWiki
Revision as of 13:57, 26 September 2013 by Regulament (talk | contribs) (Asking a question)
Jump to navigation Jump to search

This is your friendly original author speaking.

Hey there, hopefully there are no problems while working down the guide. If there are, feel free to write them down here and I will come to them! However, please *do* try to correct any issues you find in the guide yourself if you can. --Svenstaro 12:39, 19 September 2010 (EDT)

Expanded the Database section with the code needed to create a rudimentary db and dba for pfadmin to work on and removed the "Needs expansion" banner. --Justforgetme (talk) 12:02, 19 June 2012 (UTC)

KingX did exactly the updates I had in mind to do tonight, great job. Now the SQL queries will actually work out of the box for $domain/$user@$domain maildirs/mailschemes (which is what almost everyone wants to use afaik). Lets hope this doesn't lock down the how to too much. --Justforgetme (talk) 22:28, 22 June 2012 (UTC)

Hey awesome!! I am glad I am not the only one looking at this page. :) I am planning on expanding the postfixadmin and roundcubemail section. Just want to touch base on one thing, so postfixadmin and postfix share the same db right? in this case postfix_db? and Roundcube has its own db. The original author mentioned that "we will use postfixadmin to fill the tables later", but never really clarified or mentioned how... or I missed it. I think that can be one thing that should be clarified also.--KingX (talk) 22:51, 22 June 2012 (UTC)

postfixadmin and roundcube have different databases. Both are populated via the http GUI and hold the meta configuration. For example roundcube will hold user identities (name, sig), searches, contacts, contactgroups (aka mail lists), a dictioary etc. Most of these are only populated when you use the Http interface, since roundcube doesn't actually come into contact with the mailboxes that postfix(and dovecot) uses. The postfix db, in my installations usually just called postfix - no need for extra designation since you already know it is a DB - holds more interesting data since there you will find routing paths (what mailbox each alias maps to), usage information (like quotas), vacation data, hashed login credentials etc.. I don't think it makes sense to drill deeper into that topic inside the tutorial since even the admin wont be much in touch with those dbs and debugging roundcube and dovecot (&pfadmin) issues would really call for a separate document. What are You interested in adding? --Justforgetme (talk) 16:33, 29 June 2012 (UTC)

Ok yeh I have a perfectly working mailserver now. :) I was just going to expand the roundcube and postfixadmin section a little, as now roundcube is available in official repo so need to grab the source manually. And just add some hints for people trying to configure postfixadmin. --KingX (talk) 22:51, 29 June 2012 (UTC)

... I have undone the modification of user Gesh. The relay_domains variable in this specific postfix setup should only be relevant as an additional filter since the MT authentication/authorization is done via the database. Correct me if I'm wrong but I think this is necessary in case of dynamic multi domain hosting. The resulting server does not operate as an open relay unless you add a tld wildcard for every tld you want to OR for in the db ;-) --Justforgetme (talk) 15:49, 9 August 2012 (UTC)

Dovecot configuration suggests setting the certs 0444 for the .crt and 0400 for the .key, but the wiki suggests 0644 and 0600, respectively. Personally, I do not see why anyone should have write permissions on the certs, esp. since they're not meant to be modified. Suggestions? --Gesh (talk) 23:30, 9 August 2012 (UTC)

Hmm... I think you are right Gesh. I can't fathom how making the certs read only could damage the setup. --Justforgetme (talk) 00:10, 10 August 2012 (UTC)

Also, shouldn't the chown nobody:nobody also be executed on the .crt file? I cannot understand the rationale of having it owned by root. At least with system-configuration files, you'd want both that root will be able to edit them and that *only* root be able to edit them. --Gesh (talk) 01:35, 10 August 2012 (UTC)

Yeah there probably isn't anything wrong with making them read-only. --Svenstaro (talk) 00:23, 12 August 2012 (UTC)

Hey there! Excellent tutorial, it almost worked like a charm! I had some problems with dovecot and roundcube. I'm not sure if they are sufficiently general to be added on the main tutorial, but I wanted to discuss them here:

  1. Dovecot Greeting. I had to place a Dovecot greeting in /etc/dovecot/dovecot.conf. I included "login_greeting = Dovecot ready for action."
  2. Instead of using TLS for IMAP in Roundcube I had to configure SSL. In particular, I had to change this "$rcmail_config['default_host'] = 'ssl://localhost/';" on Roundcube
  3. I missed a comment on the 'username_domain' option in the configuration. As it was not mentioned in the tutorial I wrongly assumed that Dovecot allows login with only the username. But then I couldn't login from Roundcube using my username. Adding the "$rcmail_config['username_domain'] = '';" option in Roundcube

Thanks for the tutorial, I think it is pretty straightforward for a complex task a setting up the mail server. Best regards! --Es0x279e (talk) 10:12, 6 October 2012 (UTC)

Hi! I cannot for the life of me get roundcube to work. It fails when I try to do the login to the IMAP server during installation. I get: "Connecting to tls://localhost/... IMAP connect: NOT OK(Login failed for [edited] from [edited]. Empty startup greeting (localhost:993))" I've tried changing it to ssl:// and without ssl:// or tls:// but for some reason it just does not work and I do not know where to go from here. Help would be greatly greatly appreciated. --Pei (talk) 04:20, 2 November 2012 (UTC)

Undid the last contribution of (Mehtab) because listening interfaces should beimplementation speciffic for this Postfix installation. If anybody disagrees let me know. Justforgetme (talk) 06:41, 4 December 2012 (UTC)

Expanded the Roundcube section and added some info for SpamAssassin and added the tip to remove "Received header". Had to do a bit of digging today to set it up, figured I add it here so it will be helpful. KingX (talk) 02:55, 21 April 2013 (UTC)

Thank you!, the best tutorial I found, just want to point out some problems I had during the installation.

A) If vmail id/gid != 5000, you may have dovecot-sql.conf correct, but postfix still complains for db access. Better listen to Svenstaro from the begining.

B) Roundcube installer: DO NOT TRUST IT!. ,

$rcmail_config['default_host'] = 'ssl://localhost'; 

If you use tls for IMAP, it will not work and you will get nightmares with the "STARTTLS command first" error. (roundcube tries to use ssl anyway)

You can use tls for the SMTP server thoug, but also keep the next lines like this:

$rcmail_config['smtp_server'] = 'tls://localhost';
$rcmail_config['smtp_port'] = 587;
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p'; 

If you use ssl, you also have to allow ssl connections. Change 'encrypt' for 'may' in your file, or you will have those nightmares again:

-o smtpd_tls_security_level=encrypt

C) and must be enabled (/etc/php/php.ini)

D) php.conf: You can create aliases for roundcube and postfixAdmin folders, so you don't bulk your /srv/http/ directory

E) Your hostname have to include your domain name:

lupus@ulula:~$ hostname  

F) Bloking port 25 is a common practice for ISP's. This port is where all incoming mail is delivered, so you will not be able get your mail from the outside world. Don't panic (I did), you need a MX DNS server with port fordwarding (or convice your isp that blocking the smtp port is for loosers). This site offers the service for free, good enough to play around: [1]

Edit your file to something like this

smtp     inet  n       -       n       -       -       smtpd
26       inet  n       -       n       -       -       smtpd  
submission     inet  n       -       n       -       -       smtpd

Last word of advice: DO NOT mix virtual server mail with non virtual server mail configuration! --dcgasca (talk) 04:43, 22 June 2013 (UTC)

Thanks everyone for that wiki entry which helped me a lot. I also added Mailfiltering with Dovecot / Sieve after running Spamassassin which runs fine here. --ewigkeit (talk) 18:36, 25 August 2013 (UTC)

Ok, so apparently I am too stupid to figure this out. I am trying to install PostfixAdmin with MariaDB, but I get this error. Any ideas? I tried searching the web, but nothing.

Running software: 
PHP version 5.5.4

Checking for dependencies: 
Magic Quotes: Disabled - OK
Depends on: presence - OK
Checking $CONF['configured'] - OK 
Error: There is no database support in your PHP setup
 To install MySQL 3.23 or 4.0 support on FreeBSD:
% cd /usr/ports/databases/php5-mysql/
% make clean install
 - or with portupgrade -
% portinstall php5-mysql
 To install MySQL 4.1 support on FreeBSD:
% cd /usr/ports/databases/php5-mysqli/
% make clean install
 - or with portupgrade -
% portinstall php5-mysqli
 To install PostgreSQL support on FreeBSD:
% cd /usr/ports/databases/php5-pgsql/
% make clean install
 - or with portupgrade -
% portinstall php5-pgsql
Error: Can't connect to database
 Please edit the $CONF['database_*'] parameters in 

MySQL 4.1 functions not available! (php5-mysqli installed?)
database_type = 'mysqli' in, are you using a different database? 
Depends on: session - OK
Depends on: pcre - OK
Depends on: multibyte string - OK
Warning: Depends on: IMAP functions - NOT FOUND
 To install IMAP support, install php5-imap
 Without IMAP support, you won't be able to create subfolders when creating mailboxes.

Please fix the errors listed above.

--Regulament (talk) 13:57, 26 September 2013 (UTC)