Problème avec mon sendmail

Eléphanteau du PHP | 44 Messages

16 août 2006, 16:15

Bonjour à tous,

J'ai en effet un soucis avec sendmail.
Je suis sur linux rh 8.3

J'ai réussi à l'installer, j'envoie des mails sans problèmes aux utilisateurs internes par contre, je ne peux envoyer de mails vers l'extérieur.

En effet, la commande :

Code : Tout sélectionner

mail -v -s "test" [email protected] < test.txt
me renvoit cela :

test.fr: Name server timeout
[email protected]... Transient parse error -- message queued for future delivery
[email protected]... queued


Ou serait mon erreur ? Je ne connais pas trop sendmail...
:?

Merci !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

16 août 2006, 17:47

Bonjour,

ça ressemble à un problème de DNS.
Si tu fais un ping test.fr, ça fonctionne?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 44 Messages

17 août 2006, 09:19

Non, le ping ne marche pas...

J'ai pas accès à internet avec ce serveur.

Mon serveur dns ne tourne pas non plus

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 août 2006, 12:54

Y a quelque chose qui doit m'échapper...

Tu cherches à envoyer un e-mail vers l'extérieur depuis un ordinateur qui n'a pas accès à internet? :D
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 44 Messages

17 août 2006, 13:47

Bah ouais,

Je pensais utiliser juste le service SMTP et que donc le http n'était pas utile ?
Si je fais juste de l'envoi, je n'ai pas besoin de faire tourner un service dns ?

J'ai reconfiguré le sendmail.cf en mettant l'adresse du serveur smtp distant. J'ai fait un test en utilisant telnet sur le smtp distant en port 25 et j'arrive à m'envoyer un message.
Mais en faisant normalement, ca passe toujours pas. J'ai aussi ce message quand j'envoie un message à un utilisateur du server :

user... Connecting to [127.0.0.1] via relay...
user... Deferred: Connection refused by [127.0.0.1]


Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 août 2006, 15:56

Ouh là... y a un truc dans ta config qui m'échappe ou alors on n'a pas les mêmes définitions :

Internet = le réseau
=> ce qui inclus l'ensemble des protocoles HTTP, FTP, SMTP, POP...

Si tu n'as pas d'accès au "réseau", tu ne peux pas envoyer un email à un autre ordinateur qui lui serait connecté au réseau (ça semble logique mais bon).

Pour l'envoi d'un email, le serveur mail (sendmail dans ton cas) va se servir du nom de domaine situé après l'arobase pour savoir à quelle machine il doit envoyer le message.
Or comme sur internet, les machines sont identifiées par une adresse IP, il faut forcément qu'il puisse "résoudre" les noms de domaine pour obtenir l'adresse IP qui correspond.


Si on résume l'envoi d'un mail :
1) On dit au serveur d'envoi d'envoyer un message à l'adresse [email protected]
2) Le serveur doit trouver à quelle machine il doit envoyer le mail. Dans mon exemple free.fr
3) Or free.fr n'est pas une adresse d'une machine, par conséquent il faut demander à un serveur DNS à quelle adresse IP correspond le nom de domaine free.fr -> on obtient 212.27.48.10
4) Le serveur d'envoi contacte le serveur 212.27.48.10 et lui délivre le message.
5) Le serveur 212.27.48.10 (alias free.fr) regarde à qui est destiné le message, c'est à dire la partie avant l'arobase et met le message dans la bonne boite aux lettres (dans mon exemple la boite toto)

Pour conclure, oui il faut que tu ais un serveur DNS quelque part pour que les noms de domaines puissent être résolu
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 44 Messages

17 août 2006, 16:04

Ouh là... y a un truc dans ta config qui m'échappe ou alors on n'a pas les mêmes définitions :

Internet = le réseau
=> ce qui inclus l'ensemble des protocoles HTTP, FTP, SMTP, POP...

Si tu n'as pas d'accès au "réseau", tu ne peux pas envoyer un email à un autre ordinateur qui lui serait connecté au réseau (ça semble logique mais bon).

Pour l'envoi d'un email, le serveur mail (sendmail dans ton cas) va se servir du nom de domaine situé après l'arobase pour savoir à quelle machine il doit envoyer le message.
Or comme sur internet, les machines sont identifiées par une adresse IP, il faut forcément qu'il puisse "résoudre" les noms de domaine pour obtenir l'adresse IP qui correspond.


Si on résume l'envoi d'un mail :
1) On dit au serveur d'envoi d'envoyer un message à l'adresse [email protected]
2) Le serveur doit trouver à quelle machine il doit envoyer le mail. Dans mon exemple free.fr
3) Or free.fr n'est pas une adresse d'une machine, par conséquent il faut demander à un serveur DNS à quelle adresse IP correspond le nom de domaine free.fr -> on obtient 212.27.48.10
4) Le serveur d'envoi contacte le serveur 212.27.48.10 et lui délivre le message.
5) Le serveur 212.27.48.10 (alias free.fr) regarde à qui est destiné le message, c'est à dire la partie avant l'arobase et met le message dans la bonne boite aux lettres (dans mon exemple la boite toto)

Pour conclure, oui il faut que tu ais un serveur DNS quelque part pour que les noms de domaines puissent être résolu
J'ai bien compris tout ca, mais en fait, ce que je veux faire c'est utiliser un serveur smtp qui fonctionne pour envoyer le mail.

Est ce que je peux configurer mon sendmail de sorte que l'envoi soit fait par une machine distante ? Sachant que j'accède à cette machine.

Je viens de faire un test via Webmin d'envoi de mail et ca marche. Je le recois. Pourquoi en ligne de commande, il m'envoie ballader... ? :shock:
Voila en gros l'erreur qu'il me donne :

Code : Tout sélectionner

[color=red]test... Connecting to [127.0.0.1] via relay... test... Deferred: Connection refused by [127.0.0.1][/color]
Si je comprends bien, c'est carrément mon serveur qui refuse la connection, alors que j'ai configuré un serveur relay ?

Eléphanteau du PHP | 44 Messages

22 août 2006, 10:31

Après avoir parcouru google dans tous les sens, je me rends compte que sendmail, qu'il ait affaire avec un un relay ou pas, il tente toujours de résoudre les noms de domaine, et c'est tout à son honneur.

Seulement à cause de ca, mes mails ne partent jamais car il tente de résoudre alors que même nslookup ne marche pas.

Comment définir dans le sendmail.cf le fait que je veuille qu'il m'envoie le mail au serveur SMTP sans s'occuper de résoudre des noms de domaine ?

:)

Merci pour votre aide !