Postfix : Envoie d'un mail : " transport is unavailable"

Postfix : Envoie d'un mail : " transport is unavailable" - Logiciels - Linux et OS Alternatifs

Marsh Posté le 20-07-2004 à 17:02:54    

Bonjour,
 
Note: la version de postfix est la "2.0.16"
 
Jusqu'à maintenant postfix était utiliser pour n'envoyer que des mails sur des comptes locaux.
 
Maintenant, j'ai besoin d'envoyer des mails a des comptes qui ne sont pas hébergé par la machine.
 
Quand j'envoie un mail, il me reviens avec le message d'erreur :
 
"transport is unavailable"
 
Dans mon fichier main.cf, j'ai ca comme option qui semble se rapporter au pb :
######################################
#relayhost = /*commenté pas de valeur*/
 
default_transport = smtp
 
transport_maps =
######################################
 
Est ce que ce message d'erreur apparaitrais si mon firewall bloquait les mails sortant? Comment puis-je tester que mon firewall laisse bien sortir les mails?
 
Merci pour votre aide !
 
Paquerette

Reply

Marsh Posté le 20-07-2004 à 17:02:54   

Reply

Marsh Posté le 20-07-2004 à 17:27:30    

Si ce sont des domaines différents, tu doit définir un serveur relai pour ce domaine.
dans /etc/postfix tu dois avoir un main.cf avec une ligne  

Code :
  1. transport_maps = hash:/etc/postfix/transport


 
et le fichier /etc/postfix/transport doit avoir un contenu de ce style :
 

Code :
  1. toto.fr   smtp:[192.168.1.12]


 
Ce qui signifie que pour les email à destination du domaine toto.fr tu utilise SMTP sur l'adresse 192.168.1.12
 
Si c'est pour le même domaine, ça doit pourvoir se définir dans le main.cf aussi.
 
Jette un oeil dans /etc/postfix/readme/ Y'a plein de conf "pré-définie" qui te guiderons ;)
 
Perso, je m'y suis pas encore penché, mais je vais avoir un serveur de ce type qui va devoir relayer pour certaines personnes de mon domaine vers un autre serveur SMTP et d'autre personnes de ce même domaine mais avec une boite aux lettre POP locale.
Donc pour le moment j'ai juste parcouru la conf de postfix :/


Message édité par Phoenix le 20-07-2004 à 17:43:42
Reply

Marsh Posté le 20-07-2004 à 18:07:42    

Damned, j'ai pas de fichier readme...
 
Donc, en gros pour tout les domaines héberger sur la machines, je dit que le relay, c'est localhost et  pour tout les autres je doit désigner un relay de mail smtp de l'hébergeur de mon serveur?
 
Paquerette


Message édité par paquerette le 20-07-2004 à 18:08:05
Reply

Marsh Posté le 20-07-2004 à 18:33:38    

serait il possible de disposer du résultat de :
postconf -n
le smtp peut il atteindre l'extérieur ?
est il possible d'avoir un peu plus de logs que juste ce 'transport is unavailable' ?

Reply

Marsh Posté le 21-07-2004 à 02:35:29    

Alors voici postconf -n
 

Code :
  1. access_map_reject_code = 550
  2. alias_maps = hash:/etc/aliases
  3. allow_percent_hack = yes
  4. append_at_myorigin = yes
  5. append_dot_mydomain = yes
  6. body_checks = regexp:/etc/postfix/body_checks.regexp
  7. command_directory = /usr/sbin
  8. config_directory = /etc/postfix
  9. daemon_directory = /usr/libexec/postfix
  10. debug_peer_level = 2
  11. debug_peer_list =
  12. default_destination_concurrency_limit = 7
  13. default_privs = nobody
  14. default_transport = smtp
  15. empty_address_recipient = MAILER-DAEMON
  16. header_checks = regexp:/etc/postfix/header_checks
  17. header_size_limit = 102400
  18. hopcount_limit = 8
  19. ignore_mx_lookup_error = yes
  20. inet_interfaces = all
  21. invalid_hostname_reject_code = 501
  22. line_length_limit = 2048
  23. local_destination_concurrency_limit = 1
  24. mail_owner = postfix
  25. mail_spool_directory = /var/spool/mail
  26. mailbox_command = /usr/bin/procmail
  27. mailq_path = /usr/bin/mailq
  28. manpage_directory = /usr/share/man
  29. maps_rbl_domains = blackholes.mail-abuse.org, dialups.mail-abuse.org, relays.mai
  30. l-abuse.org
  31. maps_rbl_reject_code = 550
  32. masquerade_domains =
  33. masquerade_exceptions =
  34. message_size_limit = 16777216
  35. mydestination = /etc/postfix/mydestination
  36. mydomain = ##NomDomaine##
  37. myhostname = ##hostName##
  38. mynetworks = 127.0.0.0/8, #uneIP#/25, #uneAutreIp#/24
  39. myorigin = $mydomain
  40. newaliases_path = /usr/bin/newaliases
  41. program_directory = /usr/sbin
  42. queue_directory = /var/spool/postfix
  43. readme_directory = no
  44. recipient_delimiter = +
  45. reject_code = 550
  46. relay_domains = $mydestination $virtual_maps $transport_maps
  47. relay_domains_reject_code = 550
  48. sample_directory = /etc/postfix
  49. sendmail_path = /usr/sbin/sendmail
  50. setgid_group = postdrop
  51. smtp_bind_address = #AdresseIPMachine#
  52. smtp_connect_timeout = 0
  53. smtp_data_done_timeout = 600
  54. smtp_data_init_timeout = 120
  55. smtp_data_xfer_timeout = 180
  56. smtp_destination_concurrency_limit = 3
  57. smtp_destination_recipient_limit = $default_destination_recipient_limit
  58. smtp_helo_timeout = 300
  59. smtp_mail_timeout = 300
  60. smtp_quit_timeout = 300
  61. smtp_rcpt_timeout = 300
  62. smtp_skip_4xx_greeting = yes
  63. smtp_skip_quit_response = yes
  64. smtpd_banner = $myhostname ESMTP
  65. smtpd_client_restrictions = check_client_access hash:/etc/postfix/blacklist_smtp
  66. d_client reject_maps_rbl
  67. smtpd_error_sleep_time = 10
  68. smtpd_etrn_restrictions =
  69. smtpd_hard_error_limit = 40
  70. smtpd_helo_required = no
  71. smtpd_helo_restrictions =
  72. smtpd_recipient_limit = 20
  73. smtpd_recipient_restrictions = permit_mynetworks, permit_mx_backup, check_relay_
  74. domains
  75. smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/blacklist_MAIL
  76. _FROM reject_unknown_address
  77. smtpd_soft_error_limit = 5
  78. smtpd_timeout = 300
  79. swap_bangpath = yes
  80. transport_maps =
  81. unknown_address_reject_code = 450
  82. unknown_client_reject_code = 450
  83. unknown_hostname_reject_code = 450
  84. unknown_local_recipient_reject_code = 450


 

Citation :

le smtp peut il atteindre l'extérieur ?


Comment puis-je faire pour tester ca? telnet sur le port smtp d'une autre machine serait t'il un test valable?
 
 

Citation :

est il possible d'avoir un peu plus de logs que juste ce 'transport is unavailable' ?


 
Voici le détail fournis avec le mail :  
 

Code :
  1. Reporting-MTA: dns; #hostName#
  2. Arrival-Date: Mon, 12 Jul 2004 18:22:15 +0200 (CEST)
  3. Final-Recipient: rfc822; adresse@hotmail.com
  4. Action: failed
  5. Status: 4.0.0
  6. Diagnostic-Code: X-Postfix; transport is unavailable
  7. Final-Recipient: rfc822; autreAdresse@autreDomaine.fr
  8. Action: failed
  9. Status: 4.0.0
  10. Diagnostic-Code: X-Postfix; transport is unavailable


 
 
Arf dans les logs j'ai ca :
 

Code :
  1. Jul 20 04:04:38 www postfix/qmgr[19956]: warning: connect to transport smtp: Connection refused


 
Est ce que ca veut dire qu'il n'arrive a se connecter au service smtp de la machine, au a celui d'une autre?  
 
mais la y'a pas de nom de machine ou Ip donc ca doit etre la première réponse...
 
 
est ce que ca peut etre un pb de firewall :
iptable -L donne ca:  
 

Code :
  1. Chain INPUT (policy DROP)
  2. target prot opt source destination
  3. ACCEPT tcp -- anywhere anywhere tcp dpt:http
  4. ACCEPT tcp -- anywhere anywhere tcp dpt:https
  5. ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
  6. ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
  7. ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:imaps
  8. ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:imap
  9. ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:pop3s
  10. ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:smtp
  11. ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:domain
  12. ACCEPT udp -- anywhere anywhere state NEW udp dpt:domain
  13. ACCEPT all -- anywhere anywhere
  14. ACCEPT icmp -- anywhere anywhere
  15. log_drop all -- anywhere anywhere
  16. Chain FORWARD (policy DROP)
  17. target prot opt source destination
  18. log_drop all -- anywhere anywhere
  19. Chain OUTPUT (policy ACCEPT)
  20. target prot opt source destination
  21. Chain log_drop (2 references)
  22. target prot opt source destination
  23. LOG tcp -- anywhere anywhere limit: avg 2/sec burst 5 LOG level info prefix `TCP Dropped '
  24. LOG udp -- anywhere anywhere limit: avg 2/sec burst 5 LOG level info prefix `UDP Dropped '
  25. LOG icmp -- anywhere anywhere limit: avg 2/sec burst 5 LOG level info prefix `ICMP Dropped '
  26. LOG all -f anywhere anywhere limit: avg 2/sec burst 5 LOG level warning prefix `FRAGMENT Dropped '
  27. DROP all -- anywhere anywhere


Reply

Marsh Posté le 21-07-2004 à 02:41:42    

paquerette a écrit :


Code :
  1. Jul 20 04:04:38 www postfix/qmgr[19956]: warning: connect to transport smtp: Connection refused


 
Est ce que ca veut dire qu'il n'arrive a se connecter au service smtp de la machine, au a celui d'une autre?  


non il n'arrive pas a discuter avec ses diverses parties .
ici qmgr ne semble pas parvenir a discuter avec smtp
il ne serait pas chrooté ? dans master.cf il devrait y avoir une ligne du genre :

qmgr      fifo  n       -       y       300     1       qmgr


avec le meme style pour smtp, dechroot les ( s/y/n/ )et un coup de postfix reload .

Reply

Marsh Posté le 21-07-2004 à 10:32:53    

Ben c p'tetre la que ca coince... j'ai installer spamassassin et j'ai modifier ces lignes...
 

Code :
  1. qmgr      fifo  n       -       n       300     1       qmgr
  2. ...
  3. # ----------------------SPAM ASSASSIN-----------------------------------------------
  4. smtp inet n - n - - smtpd
  5.    -o content_filter=spamfilter:
  6. # ------------------FIN SPAM ASSASSIN-----------------------------------------------
  7. # ----------------------SPAM ASSASSIN-----------------------------------------------
  8. spamfilter unix - n n - - pipe
  9.   user=spamfilter argv=/usr/local/bin/spamfilter.sh
  10.   -f ${sender} -- ${recipient}
  11. # ------------------FIN SPAM ASSASSIN-----------------------------------------------


 
 
 
le script de spamfilter.sh :
 

Code :
  1. #!/bin/sh
  2. #
  3. INSPECT_DIR=/var/spool/filter
  4. SENDMAIL="/usr/sbin/sendmail -i"
  5. SPAMASSASSIN=/usr/local/bin/spamc
  6. # Exit codes from <sysexits.h>
  7. EX_TEMPFAIL=75
  8. EX_UNAVAILABLE=69
  9. cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; \
  10. exit $EX_TEMPFAIL; }
  11. # Clean up when done or when aborting.
  12. trap "rm -f in.$$; rm -f out.$$" 0 1 2 3 15
  13. # SpamAssassin uses a safe failover mode. If you do not want
  14. # Emails to be delivered when Spamassassin doesn.t run remove
  15. # the comments
  16. cat | $SPAMASSASSIN -f > out.$$ #|| \
  17. # { echo Message content rejected; exit $EX_UNAVAILABLE; }
  18. $SENDMAIL "$@" < out.$$
  19. exit $?


 
/var/spool/filter      est un répertoire existant
/usr/sbin/sendmail -i  existe bien
/usr/local/bin/spamc   existe bien
 
 
En reception, spamfilter marche bien, les spam sont marqué comme spam avec le mail original en pièce jointe, pour l'émission c'est peut etre la que ca coince...
 
Visiblement aucun n'est chrooté... donc ca doit être spamassassin qui fout la merde?
 
Paquerette

Reply

Marsh Posté le 21-07-2004 à 10:37:05    

smtpd tourne bien  :
 

Code :
  1. postfix   3636  6840  0 11:24 ?        00:00:00 smtpd -n smtp -t inet -u -o cont
  2. postfix   3648  6840  0 11:25 ?        00:00:00 smtpd -n smtp -t inet -u -o cont
  3. postfix   3649  6840  0 11:25 ?        00:00:00 smtpd -n smtp -t inet -u -o cont

Reply

Marsh Posté le 21-07-2004 à 13:31:11    

c'est probablement spammassassin .
pourquoi ne pas passer par le biais de amavisd-new pour utiliser spamassassin ?  
sachant de plus que tu peux y rajouter un filtre antiviral
(cf http://www.postfix.org/FILTER_README.html )
 


---------------
Intermittent du GNU
Reply

Marsh Posté le 21-07-2004 à 14:15:30    

Meme en rétablissant un fichier de config qui n'utilise pas le script de spamassassin  
 
j'ai toujours la meme erreur dans les logs :
 
Jul 21 15:02:31 www postfix/qmgr[23832]: warning: connect to transport smtp: Connection refused
 
 

Code :
  1. # ==========================================================================
  2. # service type private unpriv chroot wakeup maxproc command + args
  3. #   (yes) (yes) (yes) (never) (50)
  4. # ==========================================================================
  5. smtp   inet n - n - - smtpd
  6. #628   inet n - n - - qmqpd
  7. pickup   fifo n - n 60 1 pickup
  8. cleanup   unix n - n - 0 cleanup
  9. qmgr   fifo n - n 300 1 qmgr
  10. #qmgr   fifo n - n 300 1 nqmgr
  11. rewrite   unix - - n - - trivial-rewrite
  12. bounce   unix - - n - 0 bounce
  13. defer   unix - - n - 0 bounce
  14. flush   unix n - n 1000? 0 flush
  15. # ----------------------SPAM ASSASSIN-----------------------------------------------
  16. #smtp inet n - n - - smtpd
  17. #   -o content_filter=spamfilter:
  18. # ------------------FIN SPAM ASSASSIN-----------------------------------------------
  19. showq     unix n - n - - showq
  20. error     unix - - n - - error
  21. local   unix - n n - - local
  22. virtual   unix - n n - - virtual
  23. lmtp   unix - - n - - lmtp
  24. #
  25. # Interfaces to non-Postfix software. Be sure to examine the manual
  26. # pages of the non-Postfix software to find out what options it wants.
  27. # The Cyrus deliver program has changed incompatibly.
  28. #
  29. cyrus   unix - n n - - pipe
  30.   flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
  31. uucp   unix - n n - - pipe
  32.   flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
  33. ifmail    unix  -       n       n       -       -       pipe
  34.   flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
  35. bsmtp     unix  -       n       n       -       -       pipe
  36.   flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
  37. relay   unix - - n - - smtp
  38. proxymap  unix        -       -       n       -       -       proxymap
  39. # ----------------------SPAM ASSASSIN-----------------------------------------------
  40. #spamfilter unix - n n - - pipe
  41. #  user=spamfilter argv=/usr/local/bin/spamfilter.sh
  42. #  -f ${sender} -- ${recipient}
  43. # ------------------FIN SPAM ASSASSIN-----------------------------------------------


Message édité par paquerette le 21-07-2004 à 14:16:06
Reply

Marsh Posté le 21-07-2004 à 14:15:30   

Reply

Marsh Posté le 21-07-2004 à 15:42:34    

[:herencia]

Reply

Marsh Posté le 21-07-2004 à 15:48:45    

tu as bien sur reloader postfix ( postfix reload) entre temps ?
tu peux éventuellement rajouter du verbose des fois qu'on loupe un truc .


---------------
Intermittent du GNU
Reply

Marsh Posté le 21-07-2004 à 16:07:37    

vivi...
 
ahhh zut j'arrive pas a rediriger la sortie dans un fichier (fichier crée vide)
 
/usr/sbin/postfix -vvv reload 2>log
ou  
/usr/sbin/postfix -vvv reload >log
 

Reply

Marsh Posté le 21-07-2004 à 16:11:47    

euh cela ne serait pas plus simple de placer le -v au niveau de master.cf ?


---------------
Intermittent du GNU
Reply

Marsh Posté le 21-07-2004 à 16:28:47    

comment tu fait ca?

Reply

Marsh Posté le 21-07-2004 à 16:30:01    

exemple pour smtp

smtp   inet n - n - 10 smtpd
 -v



---------------
Intermittent du GNU
Reply

Marsh Posté le 21-07-2004 à 17:24:59    

ca verbose pas.... :D
 
j'ai mis ca dans master.cf
smtp   inet n - n - 10 smtpd
  -v  
 
et retirer les -vvv de postfix relaod et la rien...

Reply

Marsh Posté le 21-07-2004 à 17:28:32    

tu as reloadé ?
cela _doit_ verboser .
tu as bien mis l'espace ?
tu utilises quoi ? des paquets compiles ? ( quel distrib ? ) ou compilé toi meme ?


---------------
Intermittent du GNU
Reply

Marsh Posté le 21-07-2004 à 18:00:41    

avec un espace ca marche pas plus... (avant ct une tabulation)
 
Ben je sais pas, c mon hébergeur qui a configurer la machine du coup, je sais pas comment est installer les 3 quarts des trucs importants...

Reply

Marsh Posté le 21-07-2004 à 18:01:07    

c une redhat 7.2, postfix a été mise a jour récemment par une récompil faite par l'hébergeur...

Reply

Marsh Posté le 21-07-2004 à 18:01:28    

c'est quoi comme distribution ?
et normalement c'est un espace .


---------------
Intermittent du GNU
Reply

Marsh Posté le 22-07-2004 à 23:15:36    

ben redhat 7.2, un espace, 2, 3 rien y fait :'(
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed