Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

config dovecot postfix

7 réponses
Avatar
Pif - 34
Bonjour,

conformément à vos recommandations, j'ai installé un postfix avec mon
dovecot.

A priori, j'ai réussi à configure mon dovecot. Je souhaite gérer des
utilisateurs virtuels dans le fichier séparés. Ma conf est standard, et
voici un aperçu de mon authentification:

passdb {
driver = passwd-file
args = scheme=plain username_format=%u /etc/passwd-mail
}
userdb {
driver = passwd-file
args = username_format=%u /etc/passwd-mail
}

et de mon fichier d'utilisateurs virtuels:
monnom.monprenom:{plain}mypass:5000:5000::::

A priori, je m'authentifie, et j'utilise roundcube correctement à
quelques détails prets qui ne sont pas en rapport avec le problème courant.

Concernant postfix, voici ma conf:

dovecot_destination_recipient_limit = 1
virtual_transport = dovecot
mydestination = $mydomain, localhost.$mydomain, localhost
#xxxxx est à remplacer par mon nom de domaine
myorigin = xxxxx.fr
mailbox_command = /usr/libexec/dovecot/deliver


quand j'envoie depuis mon adresse person un mail à
monnom.monprenom@xxxxx.fr j'ai le message suivant:
Oct 9 15:55:52 vps34763 postfix/smtpd[4760]: NOQUEUE: reject: RCPT from
smtpfb1-g21.free.fr[...]: 550 5.1.1 <nom.prenom@xxxxx.fr>: Recipient
address rejected: User unknown in local recipient table;
from=<.....@laposte.net> to=<nom.prenom@xxxxx.fr> proto=ESMTP
helo=<smtpfb1-g21.free.fr>


Merci pour le coup de main

7 réponses

Avatar
Cyprien Nicolas
Salut,

Le 09/10/2013 17:25, Pif - 34 écrivit :
(snip)
Concernant postfix, voici ma conf:

dovecot_destination_recipient_limit = 1
virtual_transport = dovecot
mydestination = $mydomain, localhost.$mydomain, localhost
#xxxxx est à remplacer par mon nom de domaine
myorigin = xxxxx.fr
mailbox_command = /usr/libexec/dovecot/deliver


quand j'envoie depuis mon adresse person un mail à
j'ai le message suivant:
Oct 9 15:55:52 vps34763 postfix/smtpd[4760]: NOQUEUE: reject: RCPT from
smtpfb1-g21.free.fr[...]: 550 5.1.1 : Recipient
address rejected: User unknown in local recipient table;
from= to= proto=ESMTP
helo=<smtpfb1-g21.free.fr>



Si je reprends le tuto qui avait été donné dans un message précédent
http://wiki2.dovecot.org/HowTo/VirtualUserFlatFilesPostfix
Il y a un bout de conf postfix en bas.

D'après le message d'erreur, postfix tente de livrer le mail via
local(8), et non pas via dovecot (qui est le virtual(8)_transport).

En comparant ta conf avec celle de la doc susmentionnée, il doit au
moins te manquer la ligne suivante :

virtual_mailbox_domains = mondomaine.tld

Qui indique à postfix que les mails pour le domaine mentionné doivent
être livrées avec virtual(8) et non local(8), et donc à dovecot.


(Et je crois qu'il faut virer mondomaine.tld de mydestination
s'il y est.)

--
« Ceci n'est pas une signature. » — René Magritte (Apocryphe)
Avatar
Pif - 34
Le 09/10/2013 17:38, Cyprien Nicolas a écrit :
Salut,

Le 09/10/2013 17:25, Pif - 34 écrivit :
(snip)
Concernant postfix, voici ma conf:

dovecot_destination_recipient_limit = 1
virtual_transport = dovecot
mydestination = $mydomain, localhost.$mydomain, localhost
#xxxxx est à remplacer par mon nom de domaine
myorigin = xxxxx.fr
mailbox_command = /usr/libexec/dovecot/deliver


quand j'envoie depuis mon adresse person un mail à
j'ai le message suivant:
Oct 9 15:55:52 vps34763 postfix/smtpd[4760]: NOQUEUE: reject: RCPT from
smtpfb1-g21.free.fr[...]: 550 5.1.1 : Recipient
address rejected: User unknown in local recipient table;
from= to= proto=ESMTP
helo=<smtpfb1-g21.free.fr>



Si je reprends le tuto qui avait été donné dans un message précédent
http://wiki2.dovecot.org/HowTo/VirtualUserFlatFilesPostfix
Il y a un bout de conf postfix en bas.

D'après le message d'erreur, postfix tente de livrer le mail via
local(8), et non pas via dovecot (qui est le virtual(8)_transport).

En comparant ta conf avec celle de la doc susmentionnée, il doit au
moins te manquer la ligne suivante :

virtual_mailbox_domains = mondomaine.tld

Qui indique à postfix que les mails pour le domaine mentionné doivent
être livrées avec virtual(8) et non local(8), et donc à dovecot.


(Et je crois qu'il faut virer mondomaine.tld de mydestination
s'il y est.)




le script de conf était très compliqué et j'hésitait à tout prendre en
bloc sachant que j'ai pas forcément tout indentique et ca correspondait
pas forcément à mon problème.
En plus, je comprenais pas certains choses comme par exemple la fait
qu'il y ait du "static" alors que je suis en passwd-file.

merci


j'avais testé et c'était pas bien mieux, donc voici le message en
commentant le "mydestination" et en metant le virtual_mailbox_domaines =
xxxxx.fr

Oct 9 19:01:13 vps34763 postfix/smtpd[6974]: connect from
smtp5-g21.free.fr[212.27.42.5]
Oct 9 19:01:13 vps34763 postfix/smtpd[6974]: CACD5116273:
client=smtp5-g21.free.fr[212.27.42.5]
Oct 9 19:01:14 vps34763 postfix/cleanup[6978]: CACD5116273:
message-id=
Oct 9 19:01:14 vps34763 postfix/qmgr[6960]: CACD5116273:
from=, sizey2, nrcpt=1 (queue active)
Oct 9 19:01:14 vps34763 postfix/qmgr[6960]: warning: connect to
transport private/dovecot: No such file or directory
Oct 9 19:01:14 vps34763 postfix/smtpd[6974]: disconnect from
smtp5-g21.free.fr[212.27.42.5]
Oct 9 19:01:14 vps34763 postfix/error[6979]: CACD5116273:
to=, relay=none, delay=0.77, delays=0.68/0.04/0/0.05,
dsn=4.3.0, statusÞferred (mail transport unavailable)

j'ai pas recu de message d'erreur de mon message (au bout de quelques
minutes...)

merci
Avatar
Cyprien Nicolas
Le 09/10/2013 19:07, Pif - 34 écrivit :
Le 09/10/2013 17:38, Cyprien Nicolas a écrit :
Si je reprends le tuto qui avait été donné dans un message précédent
http://wiki2.dovecot.org/HowTo/VirtualUserFlatFilesPostfix
Il y a un bout de conf postfix en bas.



le script de conf était très compliqué et j'hésitait à tout prendre en
bloc sachant que j'ai pas forcément tout indentique et ca correspondait
pas forcément à mon problème.
En plus, je comprenais pas certains choses comme par exemple la fait
qu'il y ait du "static" alors que je suis en passwd-file.



C'est vrai qu'elle est compliquée :-) Et je t'accorde volontiers que
copier/coller de la conf sans la comprendre est pas une bonne solution,
car ça devient difficile à maintenir/faire évoluer par la suite.

Une grosse différence et qu'elle utilise LMTP pour la delivery via
dovecot au lieu d'utiliser un pipe(8) classique. Elle est en effet pas
adaptée à ce que tu veux faire sur ce point précis (qui est celui qui
nous intéresse dans ce fil).

Sur l'erreur en question, donc.

j'avais testé et c'était pas bien mieux, donc voici le message en
commentant le "mydestination" et en metant le virtual_mailbox_domaines > xxxxx.fr



En ne gardant que les lignes intéressantes :

Oct 9 19:01:14 vps34763 postfix/qmgr[6960]: warning: connect to
transport private/dovecot: No such file or directory



Ici postfix dit qu'il a pas su trouver dovecot. A priori il doit te
manquer une entrée dans le fichier master.cf qui contient la
configuration des processus utilisés par postfix:

dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender}
-d ${user}@${nexthop} -a ${recipient}

(Ça doit être sur deux lignes, la première commence avec dovecot au ras
de la marge gauche, la seconde avec flags décalé d'au moins un blanc)

Il faut évidemment adapter /usr/lib/dovecot/deliver en fonction du
chemin vers ce binaire sur ton système.


Oct 9 19:01:14 vps34763 postfix/error[6979]: CACD5116273:
to=, relay=none, delay=0.77, delays=0.68/0.04/0/0.05,
dsn=4.3.0, statusÞferred (mail transport unavailable)

j'ai pas recu de message d'erreur de mon message (au bout de quelques
minutes...)



C'est normal en fait. Le statusÞferred indique que ton serveur a
accepté le message. Sauf que comme il a pas su parler à dovecot, il a
gardé le message dans la queue locale, car il a estimé que c'est une
erreur temporaire. Tu auras le messages d'erreur au bout de trois ou
5 jours jours je pense (paramètres 'bounce_queue_lifetime' ou
'maximal_queue_lifetime' dans postfix). Tu peux voir la queue des
messages via « postqueue -p » ou « mailq ».


En résumé, je pense que pour l'erreur que tu nous as donné, il ne
manque que la ligne concernant dovecot dans le master.cf.

Bon courage :-)

--
« Ceci n'est pas une signature. » — René Magritte (Apocryphe)
Avatar
Pif - 34
Le 10/10/2013 10:43, Cyprien Nicolas a écrit :
Le 09/10/2013 19:07, Pif - 34 écrivit :
Le 09/10/2013 17:38, Cyprien Nicolas a écrit :
Si je reprends le tuto qui avait été donné dans un message précédent
http://wiki2.dovecot.org/HowTo/VirtualUserFlatFilesPostfix
Il y a un bout de conf postfix en bas.



le script de conf était très compliqué et j'hésitait à tout prendre en
bloc sachant que j'ai pas forcément tout indentique et ca correspondait
pas forcément à mon problème.
En plus, je comprenais pas certains choses comme par exemple la fait
qu'il y ait du "static" alors que je suis en passwd-file.



C'est vrai qu'elle est compliquée :-) Et je t'accorde volontiers que
copier/coller de la conf sans la comprendre est pas une bonne solution,
car ça devient difficile à maintenir/faire évoluer par la suite.

Une grosse différence et qu'elle utilise LMTP pour la delivery via
dovecot au lieu d'utiliser un pipe(8) classique. Elle est en effet pas
adaptée à ce que tu veux faire sur ce point précis (qui est celui qui
nous intéresse dans ce fil).

Sur l'erreur en question, donc.

j'avais testé et c'était pas bien mieux, donc voici le message en
commentant le "mydestination" et en metant le virtual_mailbox_domaines >> xxxxx.fr



En ne gardant que les lignes intéressantes :

Oct 9 19:01:14 vps34763 postfix/qmgr[6960]: warning: connect to
transport private/dovecot: No such file or directory



Ici postfix dit qu'il a pas su trouver dovecot. A priori il doit te
manquer une entrée dans le fichier master.cf qui contient la
configuration des processus utilisés par postfix:

dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender}
-d ${user}@${nexthop} -a ${recipient}

(Ça doit être sur deux lignes, la première commence avec dovecot au ras
de la marge gauche, la seconde avec flags décalé d'au moins un blanc)

Il faut évidemment adapter /usr/lib/dovecot/deliver en fonction du
chemin vers ce binaire sur ton système.


Oct 9 19:01:14 vps34763 postfix/error[6979]: CACD5116273:
to=, relay=none, delay=0.77, delays=0.68/0.04/0/0.05,
dsn=4.3.0, statusÞferred (mail transport unavailable)

j'ai pas recu de message d'erreur de mon message (au bout de quelques
minutes...)



C'est normal en fait. Le statusÞferred indique que ton serveur a
accepté le message. Sauf que comme il a pas su parler à dovecot, il a
gardé le message dans la queue locale, car il a estimé que c'est une
erreur temporaire. Tu auras le messages d'erreur au bout de trois ou
5 jours jours je pense (paramètres 'bounce_queue_lifetime' ou
'maximal_queue_lifetime' dans postfix). Tu peux voir la queue des
messages via « postqueue -p » ou « mailq ».


En résumé, je pense que pour l'erreur que tu nous as donné, il ne
manque que la ligne concernant dovecot dans le master.cf.

Bon courage :-)



merci pour ton aide.... ca s'améliore et ca va plus loin...
j'ai eu quelques soucis de droit RW sur certains fichiers à ajouter.

Maintenant, j'ai ce message dans le mail

Action: failed
Status: 5.1.1
Diagnostic-Code: x-unix; user unknown

la log est la suivante:
Oct 10 20:13:24 postfix/smtpd[7406]: connect from
smtp3-g21.free.fr[212.27.42.3]
Oct 10 20:13:25 postfix/smtpd[7406]: 6558411631D:
client=smtp3-g21.free.fr[212.27.42.3]
Oct 10 20:13:25 postfix/cleanup[7410]: 6558411631D:
message-id=
Oct 10 20:13:25 postfix/qmgr[5606]: 6558411631D:
from=, sizey1, nrcpt=1 (queue active)
Oct 10 20:13:25 postfix/smtpd[7406]: disconnect from
smtp3-g21.free.fr[212.27.42.3]
Oct 10 20:13:26 postfix/pipe[7411]: 6558411631D: to=,
relay=dovecot, delay=0.85, delays=0.69/0.05/0/0.1, dsn=5.1.1,
status=bounced (user unknown)
Oct 10 20:13:26 postfix/cleanup[7410]: 05BB311641E:
message-id=
Oct 10 20:13:26 postfix/bounce[7413]: 6558411631D: sender non-delivery
notification: 05BB311641E
Oct 10 20:13:26 postfix/qmgr[5606]: 05BB311641E: from=<>, size%59,
nrcpt=1 (queue active)
Oct 10 20:13:26 postfix/qmgr[5606]: 6558411631D: removed
Oct 10 20:13:27 postfix/smtp[7414]: 05BB311641E: to=,
relay=smtp4.laposte.net[193.251.214.113]:25, delay=1.1,
delays=0.01/0.05/0.96/0.05, dsn=2.0.0, status=sent (250 2.0.0
bWDW1m00a3i7e1h01WDXX8 mail accepted for delivery)
Oct 10 20:13:27 postfix/qmgr[5606]: 05BB311641E: removed


Je ne sais pas si c'est le problème, mais ca y ressemble:

mon domaine est xxxxx.fr
mon hostame est main.xxxxx.fr

mes adresses sont bien
main est le nom d'hote, il en fallait bien un, de ma VM hébergée.
ici, il y a en particulier:

Oct 10 20:13:26 postfix/cleanup[7410]: 05BB311641E:
message-id=
Oct 10 20:13:26 postfix/bounce[7413]: 6558411631D: sender non-delivery
notification: 05BB311641E

une idée du paramétrage correspondant ?

merci
Avatar
Cyprien Nicolas
Le 10/10/2013 20:22, Pif - 34 écrivit :
merci pour ton aide.... ca s'améliore et ca va plus loin...
j'ai eu quelques soucis de droit RW sur certains fichiers à ajouter.

Maintenant, j'ai ce message dans le mail

Action: failed
Status: 5.1.1
Diagnostic-Code: x-unix; user unknown

Je ne sais pas si c'est le problème, mais ca y ressemble:

mon domaine est xxxxx.fr
mon hostame est main.xxxxx.fr

mes adresses sont bien
main est le nom d'hote, il en fallait bien un, de ma VM hébergée.
ici, il y a en particulier:

Oct 10 20:13:26 postfix/cleanup[7410]: 05BB311641E:
message-id=
Oct 10 20:13:26 postfix/bounce[7413]: 6558411631D: sender non-delivery
notification: 05BB311641E

une idée du paramétrage correspondant ?



Oui, je reviendrais sur le paramétrage des comptes dans le fichier de
dovecot. En fonction des arguments que tu passes à dovecot/deliver, il
faut spécifier l'adresse e-mail complète dans le fichier
/etc/passwd-mail.

De ce que je lis de la doc (man dovecot-lda), soit il faut remplacer le
-d ${user}@${nexthop} par simplement -d ${user} dans master.cf,
soit mettre
:{plain}mypass:5000:5000::::
dans ton /etc/passwd-mail

Je fais toujours la version avec l'adresse e-mail complète car
j'héberge plusieurs domaines virtuels sur mon postfix/dovecot.

--
« Ceci n'est pas une signature. » — René Magritte (Apocryphe)
Avatar
La Bete des Vosges (Francis Chartier)
Le Thu, 10 Oct 2013 20:22:11 +0200, Pif - 34 a écrit :


Ici postfix dit qu'il a pas su trouver dovecot. A priori il doit te
manquer une entrée dans le fichier master.cf qui contient la
configuration des processus utilisés par postfix:

dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f
${sender}
-d ${user}@${nexthop} -a ${recipient}





Utilisant également dovecot avec Postfix pour plusieurs domaines et des
utilisateurs virtuels, mon master.cf comporte l'entrée suivante :
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender}
-d ${recipient}



pour l'authentification, j'utilise un fichier par domaine (realms), en
utilisant les variables :

auth_realms = domaine1.tld domaine2.tld ...
auth_default_realm = defaultdomain.tld

les fichiers utilisés sont définis dans auth default :

auth default {
mechanisms = login plain digest-md5 cram-md5

passdb passwd-file {
args = username_format=%n /etc/dovecot/auth/%d.users
}

userdb passwd-file {
args = username_format=%n /etc/dovecot/auth/%d.users
}

et il faut définir le mécanisme utilisé pour communiquer avec Postfix,
toujours dans auth default, par défaut :

socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}

Et pour finir, la structure des fichiers listant les utilisateurs et
leurs droits, pour l'authentification :

#Syntaxe du fichier user
#
#<userlogin>:{<encodagepwd>}<passwd>:vmail:vmail::/var/spool/vmail/%d/%
n::userdb_mail=maildir:~
#
virtuallogin:{PLAIN}password:vmail:vmail::/var/spool/vmail/domaine1.tld/
user::userdb_mail=maildir:~

virtuallogin2:{PLAIN}password:vmail:vmail::/var/spool/vmail/domaine1.tld/
user::userdb_mail=maildir:~

etc

--
La Bête des Vosges - Francis Chartier
Avatar
Pif - 34
Le 10/10/2013 22:19, Cyprien Nicolas a écrit :

De ce que je lis de la doc (man dovecot-lda), soit il faut remplacer le
-d ${user}@${nexthop} par simplement -d ${user} dans master.cf,
soit mettre
:{plain}mypass:5000:5000::::
dans ton /etc/passwd-mail

Je fais toujours la version avec l'adresse e-mail complète car
j'héberge plusieurs domaines virtuels sur mon postfix/dovecot.



parfait, ca marche.

J'ai plus que 2 problèmes. A en sortant, et ensuite avec roundcube...

Je fais un nouveau fil pour l'occasion.

Merci.