cyrus-imapd howto - SOLVED! + fetchmail question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry to revive this old thread. See question below.

Florin Andrei wrote, On 06/08/2004 03:58 AM:
> On Mon, 2004-06-07 at 00:45, Florin Andrei wrote:
>
>>When it was more difficult, it worked: months ago, i compiled and
>>installed Cyrus-IMAPd on FC1 and had no issues with it.
>>Now, when it's simple, it does not work. On FC2, i can't convince Cyrus
>>to work. I can create the accounts, but Evo does not read the email
>>that's delivered.
>
>
> Ok, i got it nailed down.
>
> These are the steps required to make it work:
>
> 0. Fix saslauthd
>
> Edit /etc/sysconfig/saslauthd and change MECH to "pam":
>
> MECH=pam
>
> Then (re)start saslauthd
>
> 1. Install the software
>
> [root@weiqi florin]# yum install cyrus-imapd cyrus-imapd-utils
>
> (optionally cyrus-imapd-devel)
>
> 2. Edit config files
>
> In /etc/cyrus.conf i only commented out pop3 and pop3s, since i'm not
> going to use POP3 with Cyrus.
> In /etc/imapd.conf i added these lines at the end:
>
> unixhierarchysep: 1
> altnamespace: 1
> sieve_maxscriptsize: 320
>
> The first line allows for Unix-style separators (/) instead of
> news-style (.). Also the folders are created a bit differently inside
> the Cyrus spool.
>
> Without the second line, all IMAP folders must be created inside Inbox
> by your mail client. That's weird, so i added the second line which
> allows to create new folders at the same level as Inbox.
>
> On my other Cyrus server, I had to increase the variable on the 3rd line
> (default is 32) to 320 because i have way too many folders and a lot of
> Sieve filter rules, so i was hitting the limits.
>
> Now verify there is no other IMAP server running, then start
> cyrus-imapd.
>
> 3. Change password to the "cyrus" account
>
> [root@weiqi florin]# passwd cyrus
> Changing password for user cyrus.
> New UNIX password:
> Retype new UNIX password:
> passwd: all authentication tokens updated successfully.
>
> 4. Login as "cyrus"
>
> [root@weiqi florin]# su - cyrus
> -bash-2.05b$$ whoami
> cyrus
> -bash-2.05b$
>
> 5. As the "cyrus" user, create accounts with the cyradm tool
>
> Run "cyradm localhost" and provide the password of the account "cyrus".
>>From now on, you'll do a lot of things at the cyradm prompt.
>
> -bash-2.05b$ cyradm localhost
> IMAP Password: weiqi.home.local>
> weiqi.home.local> cm user/florin
>
> IMPORTANT:
> This is why it failed before! I used to do "cm user.florin" which is the
> default Cyrus way, and it failed. Once i did "cm user/florin" instead,
> it worked.
>
> Repeat by replacing "florin" with other account names.
>
> All authentication will be done against the Unix user database (IMAP
> password same as Unix password). That's not required by Cyrus, which can
> create its own user database; in fact, one could run a Cyrus server with
> no Unix accounts, just accounts in the Cyrus db; but for that, the auth
> must be changed from the default.
> Just for testing purposes, Unix auth is fine.
>
> Verify the account creation:
>
> weiqi.home.local> lm
> user/florin (\HasNoChildren)
>
> Set permissive ACLs for that account (see "man cyradm" for details):
>
> weiqi.home.local> setacl user/florin florin lrswipcd
>
> See ACLs that you just set:
>
> weiqi.home.local> lam user/florin
> florin lrswipcd
>
> On a production server you might need to restrict those ACLs. The ACL i
> indicated is almost (but not quite) equal to administrator privileges on
> that account.
>
> 6. Configure Postfix to deliver to Cyrus instead of delivering to
> /var/spool/mail
>
> Edit /etc/postfix/main.cf, look for the section containing
> mailbox_transport and add this line:
>
> mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
>
> If this is your "production" server, then just for the duration of the
> tests comment out "inet_interfaces = all" and uncomment "inet_interfaces
> = localhost" so that mail coming in from outside is not delivered to
> your unborn-yet maybe-still-buggy Cyrus server.
> Restart Postfix.
>
> 7. Test
>
> [root@weiqi root]# echo test | mail -s test florin@localhost
>
> Watch the logs to see if it gets delivered properly.
> This is where it used to fail for me before. It kept on saying there's
> no such account ("550-Mailbox unknown"). Once i created the account with
> "/" instead of ".", the delivery succeeded.
>
> Go to /var/spool/imap and poke around and see if you can find the mail
> files. Cyrus stores each message in its own file, try and find them.
>
> Now hook-up an IMAP client to your server and see if you can access the
> mail. Try it out, create directories, move messages around, etc.

Ok, everything up to this point is working as described in this excellent HOWTO. My problem comes in when I try to do a fetchmail from my ISP and place the received email directly into the imap mailbox using the lmtp unix socket. Here is my ~/.fetchmail:

poll pop.chartertn.net proto pop3 user
        "gds@xxxxxxxxxxxxx" password "xxxxxxxxxxxx",
        is "gene" here
	smtphost "/var/lib/imap/socket/lmtp"

When I have a new message on the pop server and I run fetchmail -kv from ~ I get the error:
fetchmail: LMTP connect to /var/lib/imap/socket/lmtp failed
Same if I run it as root.


I get the same error if I run lmtptest

So, if I understand it right, postfix accesses the LMTP socket and the test mail appears in the imap inbox. But, fetchmail cannot make the same connection to lmtp. Is this possibly a privilege problem? I read somewhere too about a "lmtpd" that needs to be running. I don't seem to have it runing on my system. I do have the postfix master process running which is related to lmtpd. But this seem independent of what I am trying to get fetchmail to do. Or is it? My understanding is a bit fuzzy on this.

Thanks,
-gene



>
> 8. Go live
>
> Once all is ok, replace "inet_interfaces = localhost" with
> "inet_interfaces = all" then restart Postfix.
>
> 9. Future development
>
> One of the strengths of Cyrus is server-side filtering: you can tell it
> to filter email in folders regardless of the email client: sorting is
> performed by the server, not by the client.
> This is accomplished via Sieve. Install Horde/Ingo or another Sieve
> manager and create your own rules.
>
> Another trick:
> Create shared folders among users, either for collaboration or for other
> purposes (big unique spam trashcans that get polled by scripts feeding
> spam into SpamAssassin/sa-learn).
>
> That's it.
>


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux