Я пытаюсь заставить fetchmail забирать сообщения с сервера POP3 и вставлять их в Cyrus для локальной доставки IMAP.
Cyrus отлично работает сам по себе, и я могу подключиться к нему с помощью ThunderBird на удаленном компьютере.
Fetchmail, кажется, засасывает сообщения, но не помещает их в Cyrus (или куда-нибудь еще).
/var/log/mail.log показывает:
Aug 5 03:58:57 IMAP postfix/lmtp[8537]: 57ECB1A15BC: to=, relay=none,
delay=77830, delays=77829/0.56/0/0, dsn=4.4.1, status=deferred
(connect to IMAP.IMAP[/var/run/cyrus/socket/lmtp]: No such file or directory)
Сокет "/ var / run / cyrus / socket / lmtp" действительно существует в системе. Он принадлежит root: root, но я изменил его на 777 для устранения неполадок, поэтому проблем с разрешениями быть не должно.
Мой файл postfix main.cf:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = IMAP.IMAP
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = myserver.com, IMAP.IMAP, localhost.IMAP, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
virtual_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
virtual_alias_domains = somesite.com
virtual_alias_maps = hash:/etc/postfix/virtual
home_mailbox = Maildir/
mailbox_command =
postfix master.cf
....
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
#submission inet n - - - - smtpd
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
#smtps inet n - - - - smtpd
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
#628 inet n - - - - qmqpd
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - - 300 1 oqmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - - - - smtp
-o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
...
imapd.conf
...
# Unix domain socket that lmtpd listens on.
lmtpsocket: /var/run/cyrus/socket/lmtp
...
cyrus.conf
...
lmtpunix cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20
...
.fetchmailrc
set syslog;
set daemon 90;
set postmaster "postfix"
poll "mail.somesite.com"
with protocol pop3
user "me@somesite.com" there with password "54321" is "me" here --keep
poll "mail.mia.bellsouth.net"
with protocol pop3
user "me" there with password "54321" is "me" here --keep
Что еще можно попробовать?
Пожалуйста, проверьте, что ваш postfix lmtp chrootted конфигурацией в master.cf
если вы найдете строку вроде
lmtp unix - - - - - lmtp
или даже
lmtp unix - - y - - lmtp
вам нужно будет проверить, существует ли сокет в chroot (скорее всего, / var / spool / postfix).
например: существует ли / var / spool / postfix / var / run / cyrus / socket / lmtp? (вместо / var / run / cyrus / socket / lmtp)
Если это так, вы можете удалить chrooting из lmtp с помощью строки в master.cf, например
lmtp unix - - n - - lmtp
или вы можете mount-bind / var / run / cyrus / socket сосуществовать в chroot.
Вроде сейчас работает. Я изменил "myhostname" на "localhost" в postfix / main.cf, и внезапно все начинает работать. Спасибо за ответы!