Soru postfix “fatal: unknown service: smtp / tcp” ile posta göndermiyor


Postfix'i yükledim ve gmail'e bir posta göndermeye çalıştığımda bana gönderildiğini söyledim, ancak Gmail'de gelen kutumu işaretlediğimde onu görmedim.

Bağlantı böyle görünüyordu:

$ telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 DarkSenic ESMTP Postfix (Debian/GNU)
HELO localhost.localdomain
250 DarkSenic
MAIL FROM:<test@test.com>
250 2.1.0 Ok
RCPT TO:<mymail@gmail.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Test

test
.
250 2.0.0 Ok: queued as E15692031E9
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Ve bu benim main.cf dosyası:

# 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 = DarkSenic
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.localdomain, DarkSenic, localhost.localdomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 [2001:db8:1407:c3a0::]/60 128.66.85.168 10.0.0.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Bu, günlük dosyasına aldığım şey:

Dec 28 18:48:23 DarkSenic postfix/smtpd[4623]: connect from unknown[::1]
Dec 28 18:49:18 DarkSenic postfix/smtpd[4623]: B2C422031EA: client=unknown[::1]
Dec 28 18:49:28 DarkSenic postfix/cleanup[5564]: B2C422031EA: message-id=<20141228164918.B2C422031EA@DarkSenic>
Dec 28 18:49:28 DarkSenic postfix/qmgr[16196]: B2C422031EA: from=<test@test.com>, size=322, nrcpt=1 (queue active)
Dec 28 18:49:28 DarkSenic postfix/smtp[5565]: fatal: unknown service: smtp/tcp
Dec 28 18:49:29 DarkSenic postfix/qmgr[16196]: warning: private/smtp socket: malformed response
Dec 28 18:49:29 DarkSenic postfix/qmgr[16196]: warning: transport smtp failure -- see a previous warning/fatal/panic logfile record for the problem description
Dec 28 18:49:29 DarkSenic postfix/master[29689]: warning: process /usr/lib/postfix/smtp pid 5565 exit status 1
Dec 28 18:49:29 DarkSenic postfix/master[29689]: warning: /usr/lib/postfix/smtp: bad command startup -- throttling
Dec 28 18:49:29 DarkSenic postfix/error[5566]: B2C422031EA: to=<myemail@gmail.com>, relay=none, delay=41, delays=40/1/0/0.05, dsn=4.3.0, status=deferred (unknown mail transport error)
Dec 28 18:49:30 DarkSenic postfix/smtpd[4623]: disconnect from unknown[::1]

grep smtp / etc / services bana verir:

smtp        25/tcp      mail
ssmtp       465/tcp     smtps       # SMTP over SSL

Bu benim master.cf dosyasında sahip olduğum şey:

#
# 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.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
#submission inet n       -       -       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -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       -       -       -       -       smtpd
#  -o syslog_name=postfix/smtps
#  -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       -       -       -       -       qmqpd
pickup    fifo  n       -       -       60      1       pickup
cleanup   unix  n       -       -       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       -       1000?   1       tlsmgr
rewrite   unix  -       -       -       -       -       trivial-rewrite
bounce    unix  -       -       -       -       0       bounce
defer     unix  -       -       -       -       0       bounce
trace     unix  -       -       -       -       0       bounce
verify    unix  -       -       -       -       1       verify
flush     unix  n       -       -       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       -       -       -       smtp
relay     unix  -       -       -       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       -       -       -       showq
error     unix  -       -       -       -       -       error
retry     unix  -       -       -       -       -       error
discard   unix  -       -       -       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       -       -       -       lmtp
anvil     unix  -       -       -       -       1       anvil
scache    unix  -       -       -       -       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=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
#  mailbox_transport = lmtp:inet:localhost
#  virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus     unix  -       n       n       -       -       pipe
#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/deliver -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.
#
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/lib/bsmtp/bsmtp -t$nexthop -f$sender $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}

Neden çalışmıyor? ve bunu nasıl düzeltebilirim? İnternette bazı cevaplar buldum ama benim için çalışmadılar ...

Okuduğunuz için teşekkür ederim ve iyi günler dilerim :)


5
2017-12-28 16:39


Menşei


Günlükler ne diyor? - Marki
Postaları spam klasörüne bile alamıyorum. Hiç teslim edilmediği gibi. - user3761616
Günlükleri ekledim. - user3761616
@MadHatter Soruna eklenen günlükler ile, bir çoğaltma gibi görünmüyor. - kasperd
@kasperd Katılıyorum, VTC'mi geri çektim. Postfix guru değilim, bu yüzden buna yardımcı olamam. - MadHatter


Cevaplar:


Debian'da postfix okumuyor /etc/servicesancak bu dosyaların queue_directory (genellikle / var / spool / postfix). Yani aslında okumaya çalışıyor /var/spool/postfix/etc/servicesYa mevcut değil ya da bozuk.

Bu dosyayı yeniden oluşturmayı deneyin veya daha iyisi sadece bağlantı kurun (eğer postfix'i chroot'ta çalıştırmıyorsanız).

sudo ln -snf /etc/services /var/spool/postfix/etc/services

Postfix'i chrooting yapıyorsanız, dosyayı kopyalayın.

sudo cp -f /etc/services /var/spool/postfix/etc/services

10
2017-12-28 18:19



Çalıştığında soğutun, sunucuya bağlanır, ancak sunucu spam olarak işaretler. Ve onu gmail hesabımdaki spam dizinine bile göndermiyor, sadece atıyor. Şu anda bulduğum başka bir şeyi kullanarak düzeltmeye çalışacağım, başka bir önerin var mı? - user3761616
Mesaj aslında Gmail’e ulaştıysa, mesajın spam gibi görünmediğinden emin olmak için yapabileceğiniz başka bir şey yoktur. - Michael Hampton♦


SMTP daemon chrooted (örneğin Debian üzerinde si varsayılan davranış) ve chroot ortamı düzgün ayarlanmamış çünkü "ölümcül: bilinmeyen hizmet: smtp / tcp" hatası ile karşılaştım. Çıkış yapmak resmi belgeler.

Chroot ortamını düzgün bir şekilde kurmak için dizinde sağlanan platformunuz için betik kullanmalısınız examples/chroot-setup kaynak kodu dağıtımında. Bu genellikle paket yöneticiniz tarafından ele alınacaktır, ancak kaynaklardan derleme yapıyorsanız veya Docker kabında çalışıyorsanız, bu adım chrooted daemonların çalışması için zorunlu olacaktır.

Bu sorunu çözecek olan postfix sistemlerini (chromot) her zaman devre dışı bırakabilirsiniz (ancak güvenlik uygulamalarından sakınabilirsiniz).


4
2018-03-16 18:02



Bir Debian Docker kapsayıcısında çalıştırabilirsiniz /etc/init.d/postfix start her ikisi de chroot ortamını kurup postfix'i başlatır. - Chris Jones


Başka bir çözüm, postfix'e smtp'yi chroot yapmamasını söylemektir. Bu, CentOS 6 varsayılanıdır.

İle başlayan /etc/postfix/master.cf dosyasındaki iki satırı bulun. smtp. 5. sütunu soldan bir n her satırda. Sonra postfix'i yeniden başlatın.

Tabii ki, eğer sadece postfix ile chroot'lu bir ortamda çalışmıyorsanız bunu yapın.


0
2017-08-06 23:29





Kiminle ilgili olabilir: Bu hatanın üzerine düştüm, ancak içerikle veya biçimle ilgili herhangi bir sorunla karşılaşmadım. /etc/services veya kopyası Postfix'in chroot'una. Bunun yerine, ben tökezledim https://github.com/zfsonlinux/zfs/issues/6803#issuecomment-378271799 nasıl kullanıldığını açıklayan noexec dosya sistemi üzerindeki bayraklar ör. altında /var/spool Postfix tarafından okunan resolver kütüphanesinin yüklenmesini engelliyor /etc/services. Bu yüzden Postfix'in okuyabileceği şekilde bu bayrağı değiştirmek zorunda kaldım /etc/services hiç


0
2017-07-20 23:08