Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/10/2015, à 23:05

Nocnoc

Configurer postfix pour un serveur de mail local

Bonjour,

Je suis nouveau sur ce forum.
Je suis en train d'essayer de développer un site web en local et je n'arrive pas à envoyer des mail en php.
Pour localiser le problème, j'essaie d'envoyer des mails en ligne de commande.
J'ai donc installé postfix mais ça ne marche pas...

Quand je tape la commande:

mail -s "Le sujet" monnom@yahoo.fr

rien n'arrive dans ma messagerie.

Si je regarde

/var/log/mail.log

, j'ai le message:

Oct 27 21:40:22 ordi-cyrille postfix/smtp[5624]: 67084C05F7: to=<monnom@yahoo.fr>, relay=smtp.bbox.fr[194.158.122.55]:25, delay=334,
delays=334/0.02/0.23/0.05, dsn=4.1.8, status=deferred (host smtp.bbox.fr[194.158.122.55] said: 450 4.1.8
<cyrille@ordi-cyrille.lan>: Sender address rejected: Domain not found (in reply to MAIL FROM command))

J'ai bien lu la doc et fait des recherches sur internet mais je n'y comprend rien...

Pourquoi est-ce que j'ai plusieurs main.cf?
/etc/postfix/main.cf --> c'est celui là qui a l'air d'être utilisé.
/usr/lib/postfix/main.cf

Voilà le contenu de mon main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
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

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = ordi-cyrille.lan
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = ordi-cyrille.localhost, ordi-cyrille.lan, localhost.lan, localhost
relayhost = smtp.bbox.fr
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = 
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

Merci d'avance pour votre aide.

Hors ligne

#2 Le 28/10/2015, à 19:39

bruno

Re : Configurer postfix pour un serveur de mail local

Bonjour,

Tu as configuré ton Postfix pour qu'il relaie tous les courriel vers smtp.bbbox.fr (pourquoi ?). Ce dernier refuse donc logiquement de transférer des courriels pour un domaine qui n'existe pas : ordi-cyrille.lan

Hors ligne

#3 Le 28/10/2015, à 22:22

Nocnoc

Re : Configurer postfix pour un serveur de mail local

Merci pour ta réponse Bruno.
J'ai lu quelque part (où?) que dans relayhost, je devais mettre le nom du serveur smtp de mon FAI (pour envoyer des mails vers "l'exterieur").
J'ai donc smtp.bbox.fr car je suis chez bouygues.
C'est pas ça?

J'avoue que je ne comprend pas trop ta réponse... Y a un truc qui m'échappe dans la mécanique des envois de mail. sad
Pourquoi dis tu que le domaine ordi-cyrille.lan n'existe pas? Ce n'est pas mon localhost?

D'ailleurs, quand j'envoie un mail en ligne de commande, je ne spécifie pas de domaine...
Où est-ce paramétré que le domaine cible est ordi-cyrille.lan?

Merci d'avance.

Hors ligne

#4 Le 29/10/2015, à 09:16

bruno

Re : Configurer postfix pour un serveur de mail local

Un peu de lecture pour comprendre le fonctionnement d'un serveur SMTP :
http://irp.nain-t.net/doku.php/170smtp:010_les_bases

La directive relayhost indique qu'il faut transférer tous les courriels dont la destination n'est pas locale vers le serveur spécifié. C'est utile pour envoyer des courriels vers l'extérieur si ton FAI ne te permet pas d'utiliser ton propre serveur SMTP (par blocage du port 25 en général).

Tu as eu le bon réflexe en allant examiner les logs. Détaillons le message d'erreur :
- un courriel est envoyé à monnom@yahoo.fr ;
- ton serveur SMTP local le transmet à smtp.bbox.fr ;
- le serveur bbox.fr fait un certains nombres de vérifications pour savoir s'il doit à son tour transmettre ce courriel. Parmi ces vérifications il en fait une sur l'adresse d'expéditeur : cyrille@ordi-cyrille.lan. Là il voit que le domaine ordi-cyrille.lan n'est pas un FQDN, autrement dit que ce domaine ne correspond à aucune adresse physique (IP) sur l'Internet. Il refuse donc de le transmettre et le met en attente (deferred). Il faut donc que tu testes en utilisant une adresse d'expéditeur valide, c'est à dire avec un « vrai » nom de domaine (pas un truc qui n'existe que localement). Ta commande mail, par défaut, va utiliser comme expéditeur utilisateu@nom_de_la_macine.

Exemple en ligne de commande :

mail -s "Le sujet" monnom@yahoo.fr -aFrom:autrenom@gmail.com

Hors ligne

#5 Le 29/10/2015, à 21:59

Nocnoc

Re : Configurer postfix pour un serveur de mail local

Super! Merci pour ces précisions.
Ca marche donc en console. Je vais voir ce que ça donne maintenant en php.
Je vais aussi me pencher sérieusement sur ta doc car je pense que ça va me servir pour la suite.

Hors ligne