Kökün postasını iletmek için postfix alın


13

Postfix çalıştıran bir Ubuntu sunucum var. Alan adımın posta sunucusu değil.

Bir cron işi root için çalıştığında, çıktı postası yerel olarak teslim edilmez, bunun yerine ana posta sunucusu üzerinden root@alanadim.com adresine gönderilir. İstediğim bu değil.

Kök için postanın yerel olarak teslim edilmesini veya başka bir mail@anotherdomain.com adresine iletilmesini istiyorum.

Her ikisini de değiştirmeyi denedim ~root/.forwardve /etc/aliases(ve newaliases çalıştırıyorum), ancak hiçbir şey yardımcı olmaz (sanırım bu dosyalar sadece postfix yerel olarak posta teslim etmeye çalıştığında kontrol edilir).

Ne yapabilirim?

Bu /etc/postfix/main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
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
myhostname = linux1.mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = linux1.mydomain.com, localhost.linux1.mydomain.com, localhost
relayhost = my.isps.relayhost.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

Düzenle:

Köke posta gönderirken, bu şuraya gider /var/log/mail.log:

Mar  7 09:39:17 linux1 postfix/pickup[31381]: F3B9C98025E: uid=1000 from=<ct>
Mar  7 09:39:18 linux1 postfix/cleanup[31556]: F3B9C98025E: message-id=<20130307083917.F3B9C98025E@linux1.mydomain.com>
Mar  7 09:39:18 linux1 postfix/qmgr[28525]: F3B9C98025E: from=<ct@mydomain.com>, size=283, nrcpt=1 (queue active)
Mar  7 09:39:18 linux1 postfix/smtp[31558]: F3B9C98025E: to=<root@mydomain.com>, orig_to=<root>, relay=my.isps.relayhost.com[<IP address omitted>]:25, delay=0.72, delays=0.19/0.02/0.27/0.25, dsn=2.0.0, status=sent (250 Ok: queued as A97F5D8126)
Mar  7 09:39:18 linux1 postfix/qmgr[28525]: F3B9C98025E: removed

"Ct" adı benim kullanıcı adım. Yukarıdaki metni bu komutla oluşturdum:

echo test | mail -s test root

İçeriği /etc/mailname:

mydomain.com

İçeriği /etc/aliases:

root: anothermail@anotherdomain.com
postmaster:    root

Burada anothermail@anotherdomain.com kök postalarının iletilmesini istediğim yerdir.

İçeriği /etc/hostski beni biraz şaşırtıyor:

127.0.0.1 localhost
127.0.1.1 linux1.mylinux.mydomain.com linux1

burada "mylinux", linux1'in sanal makine olarak çalıştığı bir ana bilgisayar işletim sisteminin ana bilgisayar adıdır. "Mylinux" un oraya nasıl geldiğinden emin değilim. (Ama bu gerçekten sorunumun nedeni olabilir mi?)


Köke bir posta gönderdiğinizde postfix günlüklerinizi bize verebilir misiniz?
Dom

Orijinal yazının bir düzenlemesinde bunu yaptım.
oz1cz

Bize / etc / mailname ve / etc / aliases dosyalarınızı verir misiniz? / Etc / hosts tarafından 127.0.1.1
Dom

Bilgileri orijinal yayına ekledim.
oz1cz

Günlüklerinize göre, posta isp smtp rölenize doğru şekilde gönderildi. Onlardan (isp) my.isps.relayhost.com [<IP adresi atlandı>] günlükleri sorun hakkında herhangi bir ipucu (antispam, hata, ...) kontrol etmelerini rica ediyorum.

Yanıtlar:


13

Her zamanki gibi günlüklerinizi kontrol edin.

Sizin durumunuzda, postfix arka plan programı postanın onun için olmadığını düşünüyor ve kullanmadan gönderiyor /etc/aliases

Öncelikle /etc/hostsdosyanızı kontrol edin : makine adınızın aşağıdakine karşılık gelmesi gerekir 127.0.1.1:

127.0.1.1  linux1.mydomain.com  linux1

Siz /etc/mailnamede kontrol edin ve tutarlı olmalıdır.

Senin Kontrol /etc/aliaseskök (kullanıcı) başka bir kullanıcıya gönderilen olup olmadığını görmek için, ve yeniden newaliaseskomutunu.

Ve işe yaramalı!


Olmalı mı 127.0.0.1?
Nate

127.0.0.0/8 içinde herhangi bir adresiniz olabilir, bu yüzden 127.0.0.1 de iyi çalışır
Dom

Ben sadece e-posta göndermek için bir akıllı ev sahibi röle kullanmak istedim benzer bir sorun vardı: "myhostname" "localhost" olması gerekiyordu. Başka bir şey takma ad dosyasını atladı.
Alex

8

Eğer mydestinationboş veya içermez $myhostnamesonra /etc/aliasessonek eposta yerel dağıtım değildir ve bu nedenle yerel adlar geçerli olmayacaktır düşündüğü için göz ardı edilecektir. Bu nedenle, mydestinationvarsayılan olarak bırakın ( postconf -d mydestinationveya listeden kaldırın main.cf) ve günlükler to=<...>, takma adresiniz olarak gösterilmelidir.


Harici bir posta sunucusu kullanıyorum ve mydestinationboş olmalı. Aksi takdirde posta gönderilmez.
Corni

1

Bazı durumlarda (yani, tüm postaların harici bir sisteme aktarıldığı durumlarda), MAILTOkökün crontabındaki değişkeni gerçek bir e-posta adresine ayarlamak daha kolaydır . Bu, geleneksel teslimatı kökten hemen atlamalı ve sadece istediğiniz yere götürmelidir.

# Root's crontab
MAILTO=someone@example.com
0 0 * * * /usr/bin/somescript

0

/root/.forwardEn azından sertleştirilmiş sistemde (içine girmedim) postfix daemon'un açılmasıyla ilgili bir sorun var gibi görünüyor . Rağmen:

# ls -ld / /root /root/.forward
dr-xr-xr-x. 18 root root  236 Dec  4 00:02 /
dr-xr-x--x. 13 root root 4096 Jan  8 17:45 /root
-rw-r--r--.  1 root root   30 Jan  8 14:51 /root/.forward

Postfix daemon öğesinin alt öğesi .forward dosyasına erişemiyor:

7603  open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 16
7603  fstat(16, {st_mode=S_IFREG|0644, st_size=1227, ...}) = 0
7603  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f86854fb000
7603  read(16, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 1227
7603  close(16)                         = 0
7603  munmap(0x7f86854fb000, 4096)      = 0
7603  geteuid()                         = 89
7603  getegid()                         = 89
7603  geteuid()                         = 89
7603  setresuid(-1, 0, -1)              = 0
7603  setresgid(-1, 0, -1)              = 0
7603  setgroups(1, [0])                 = 0
7603  lstat("/root/.forward", 0x7ffc03f84750) = -1 EACCES (Permission denied)

Ben giriş ekleme ... içine kazmak zaman yoktu /etc/aliasestarafından takip newaliaseseserler cezası.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.