Forum Linux.mandriva Postfix et cyrus-imap

Posté par  .
Étiquettes : aucune
-1
6
jan.
2011
Bonjour,

Je viens d'installer une distribution mandriva 2010.2 ainsi qu'un serveur postfix et cyrus-imap. Avec ma configuration actuelle je n'arrive pas a receptionner les mail l'envoi ce passe normalement mais aucun mail n'est reçu par cyrus-imap.

ma configuration est la suivante :

postfix :


main.cf :

# These are changed by postfix install script
readme_directory = /usr/share/doc/postfix/README_FILES
html_directory = /usr/share/doc/postfix/html
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/share/man
daemon_directory = /usr/lib/postfix
data_directory = /var/lib/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix

# User configurable parameters
# specifie le nom de domaine local
mydomain = mondomaine.net

# le nom FQDN de la machine faisant office de serveur mail
myhostname = ns0.mondomaine.net

#definit l'adresse d'emission des messages poste localement
myorigin = $mydomain

#definit la liste de nom de domaine ou de machine pour laquelle la machine considerera comme etant la destination finale des messages
mydestination = $myhostname localhost.$mydomain $mydomain

# definit quel sont les adresse de la machine qui sont suceptible de recevoir du courier
# par defaut accepte les messages sur toutes les interfaces
inet_interfaces = all

# La liste des clients SMTP "internes" qui ont plus de privilèges que les "étrangers", indiquez une liste d'expressions réseau/masque, séparé par des virgules et/ou des espaces.
mynetworks = 127.0.0.0/8, 192.168.0.0/24

#specifie les reseau interne autorise a relayer le courier
mynetworks_style = host

# temp au dela duquel l'expediteur recoi les entetes du message toujours en file d'attente
delay_warning_time = 4h

# texte qui suit le code 220 de la baniere d'accueil
smtpd_banner = Bienvenue sur le serveur mail de mondonaine.net

# code numerique de reponse au serveur SMTP de postfix lorsque l'adresse de destination est locale et que "$local recipient maps"
# indique une liste de tables de correspondances et que le destintaire n'est pas trouve.
unknown_local_recipient_reject_code = 450

#
smtp-filter_destination_concurrency_limit = 2
lmtp-filter_destination_concurrency_limit = 2
#inet_protocols = all
#mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
mailbox_transport = cyrus
local_transport = cyrus


master.cf


#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# The script postfix-chroot.sh can be used to set up a Postfix chroot
# environment on your Mandrivalinux System.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - y - - smtpd
#submission inet n - 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 - 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 - n - - qmqpd
pickup fifo n - y 60 1 pickup
-o content_filter=
-o receive_override_options=
cleanup unix n - y - 0 cleanup
qmgr fifo n - y 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
tlsmgr unix - - y 1000? 1 tlsmgr
rewrite unix - - y - - trivial-rewrite
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
trace unix - - y - 0 bounce
verify unix - - y - 1 verify
flush unix n - y 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
relay unix - - y - - smtp
-o smtp_fallback_relay=
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - y - - showq
error unix - - y - - error
retry unix - - y - - error
discard unix - - y - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - y - - lmtp
anvil unix - - y - 1 anvil
scache unix - - y - 1 scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
#maildrop unix - n n - - pipe
# flags=DRhu user=nobody argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Please See the Postfix CYRUS_README file for details
# deliver interface (deprecated), to use this also use
# postconf -e cyrus-deliver_destination_recipient_limit=1
cyrus-deliver unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
#cyrus-deliver unix - n n - - pipe
#flags= user=cyrus argv=/usr/cyrus/bin/deliver -r ${sender} -m ${extension} ${user}
#
# for default cyrus socket placement
#cyrus unix - n n - - lmtp
# -o lmtp_cache_connection=yes
#
# if you configure cyrus socket in the chroot jail
#cyrus-chroot unix - - y - - lmtp
# -o lmtp_cache_connection=yes
#
# for lmtp to cyrus via tcp
#cyrus-inet unix - - y - - lmtp
# -o lmtp_cache_connection=yes
# -o lmtp_sasl_auth_enable=yes
# -o lmtp_sasl_password_maps=hash:/etc/postfix/cyrus_lmtp_sasl_pass
# -o lmtp_sasl_security_options=noanonymous
#
#cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/usr/sbin/cyrdeliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
#uucp unix - n n - - pipe
# flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# ====================================================================
#
# Other external delivery methods.
# These are not distributed with Mandrivalinux
#
#ifmail unix - n n - - pipe
# flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
#
#bsmtp unix - n n - - pipe
# flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
scalemail-backend unix - n n - 2 pipe
# flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
# ${nexthop} ${user} ${extension}
#
#mailman unix - n n - - pipe
# flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
# ${nexthop} ${user}
#
##### START OF CONTENT FILTER CUSTOMIZATIONS #####
# Please see the Postfix FILTER_README for details.
# These sample entries expect your content filter to
# listen on port 10025 and to inject mail back into
# postfix on port 10026.
#
# to enable such content filter run the command
# postconf -e content_filter=smtp-filter:127.0.0.1:10025
# postconf -e smtp-filter_destination_concurrency_limit=2
# or
# postconf -e content_filter=lmtp-filter:127.0.0.1:10025
# postconf -e lmtp-filter_destination_concurrency_limit=2
# and the command
# postconf -e receive_override_options=no_address_mappings
#
# adjust the value of ?mtp-filter_destination_concurrency_limit
# to match the maximum number of process your content filter
# will spawn.
#
127.0.0.1:10026 inet n - y - - smtpd
-o content_filter=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_end_of_data_restrictions=
-o smtpd_etrn_restrictions=
-o smtpd_data_restrictions=
-o smtpd_delay_reject=no
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
#
lmtp-filter unix - - y - - lmtp
-o lmtp_data_done_timeout=1200
-o lmtp_send_xforward_command=yes
-o lmtp_cache_connection=no
-o max_use=20
#
smtp-filter unix - - y - - smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o max_use=20
#
##### END OF CONTENT FILTER CUSTOMIZATIONS #####


cyrus-imap :


imap.conf

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus
allowanonymouslogin: no
allowplaintext: yes
#sieveusehomedir: no
#sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
servername: ns0.mondomaine.net
#sasl_mech_list: PLAIN
sasl_metch_list: shadow
allowapop: yes
lmtpsocket: /var/spool/postfix/public/lmtp
tls_cert_file: /etc/ssl/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/ssl/cyrus-imapd/cyrus-imapd.pem

# If enabled, lmtpd will convert the recipient address
# to lowercase (default is disabled):
# lmtp_downcase_rcpt: yes

# uncomment if you want to auto create the INBOX folder
# upon first authentication of a new user. If you want
# to set a quota, change "-1" to some positive value.
# autocreatequota: -1

J'ai crée une boite mail "tstcyr" via "cyradm" j'arrive bien a me connecter a cette boite que ce soit par le protocole pop ou imap.
Mais quelque soit la manière dont j'envoie un message elle ne le réceptionne jamais.
Si je commente les lignes :
" #mailbox_transport = cyrus "
et " #local_transport = cyrus "
le mail est bien réceptionné dans le fichier /var/spool/mail/tstcyr mais impossible de lire ce fichier depuis cyrus-imap.

Si vous pouviez m'indiquer ou ce trouve mon ou mes erreurs, et/ou me donner une configuration de postfix et cyrus-imap fonctionnelle sur mandriva linux 2010.2.

En attente d'une réponse de votre je vous souhaite une bonne journée.
  • # dans postfix/main.cf

    Posté par  . Évalué à 2.

    # User configurable parameters
    # specifie le nom de domaine local
    mydomain = mondomaine.net

    # le nom FQDN de la machine faisant office de serveur mail
    myhostname = ns0.mondomaine.net


    tu es sur de ca ?

    de plus tu dis ne pas recevoir les emails ?
    oui mais lesquels ?
    - ceux qui viennent de la machine en elle meme (genre un email emis par user1 à destination de user2 ?
    - ceux emis depuis une autre machine du reseau 192.168.0.X à destination de user2@tamachine
    - ou bien plus loin, ceux emis par gmail à destination de user2@tondomaine.net ?
    • [^] # Re: dans postfix/main.cf

      Posté par  . Évalué à 1.

      Oui je suis absolument sur de ces 2 lignes.

      Pour répondre a ta second question, je teste l'envoi de mail en local uniquement, il me parait inutile de faire des testes supplémentaire tant que cela ne fonctionne pas en local.

      J'envoie des mails tout dabord via la command mail :

      [root@ns0 ~]# mail -s "test reception" tstcyr
      test
      .
      EOT

      et par telnet sur le port 25 :

      [root@ns0 ~]# telnet 192.168.0.1 25
      Trying 192.168.0.1...
      Connected to 192.168.0.1.
      Escape character is '^]'.
      220 Bienvenue sur le serveur mail de mondomaine.net
      mail from: tstcyr@mondomaine.net
      250 2.1.0 Ok
      rcpt to: tstcyr@mondomaine.net
      250 2.1.5 Ok
      data
      354 End data with .
      test
      .
      250 2.0.0 Ok: queued as D24F73ACF8
      quit
      221 2.0.0 Bye
      Connection closed by foreign host.

      Dans les 2 cas si les lignes "#mailbox_transport = cyrus "
      et " #local_transport = cyrus " sont commentées le mail et ajouter au fichier de l'utilisateur dans /var/spool/mail/tstcyr.
      Si ces 2 lignes sont decommenté aucun mail n'est ajouté a /var/spool/mail/tstcyr et quand je me connecte au serveur sur le port pop ou imap aucun mail n'a été reçu.
      Cela étant dit les mails contenu dans le fichier /var/spool/mail/tstcyr ne sont pas pris en compte par cyrus-imap qui déclare aucun mail reçu.
      Cela vient certainement du fait que cyrus-imap doit possédé sont propre fichier par compte mail et que celui-ci n'est pas incrémenté.
      • [^] # Re: dans postfix/main.cf

        Posté par  . Évalué à 2.

        d'apres tes tests, en effet, postfix (qui repond au telnet 0 25) fonctionne.

        il faut donc trouver pourquoi cyrus ne recupere pas ces emails pour les stocker lui meme.

        perso j'utilise postfix/dovecot, et je n'ai pas de directive
        mailbox_transport et local_transport dans ma config postfix

        que disent les logs de cyrus-imap ?
        voit-il passer les infos ?

        il n'y aurait pas un socket à configurer pour que postfix signal à cyrus qu'il y a des emails à traiter ?
        • [^] # Re: dans postfix/main.cf

          Posté par  . Évalué à 2.

          Problème résolu :

          Il faut :

          - modifier le master.cf :

          remplacer :

          lmtp unix - - y - - lmtp

          par

          lmtp unix - - n - - lmtp

          - modifier main.cf

          ajouter uniquement la ligne :

          mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

          - ajouter l'utilisateur postfix comme faisant partie du groupe mail dans /etc/group

          mail:x:12:postfix

          Merci pour ton aide.

          Bon week-end a tous.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.