Saya memiliki server Ubuntu yang menjalankan postfix. Ini bukan server email untuk domain saya.
Setiap kali tugas cron dijalankan untuk root, mail output tidak dikirim secara lokal, melainkan dikirim ke [email protected] melalui server mail utama. Ini bukan yang saya inginkan.
Saya ingin mail untuk root dikirim secara lokal atau diteruskan ke [email protected].
Saya sudah mencoba memodifikasi keduanya ~root/.forward
dan /etc/aliases
(dan menjalankan newaliases), tetapi tidak ada yang membantu (saya kira file-file ini hanya diperiksa ketika postfix mencoba mengirimkan email secara lokal).
Apa yang dapat saya?
Ini adalah /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
Edit:
Saat mengirim email ke root, ini masuk ke /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=<[email protected]>
Mar 7 09:39:18 linux1 postfix/qmgr[28525]: F3B9C98025E: from=<[email protected]>, size=283, nrcpt=1 (queue active)
Mar 7 09:39:18 linux1 postfix/smtp[31558]: F3B9C98025E: to=<[email protected]>, 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
Nama "ct" adalah nama pengguna saya. Saya membuat teks di atas melalui perintah ini:
echo test | mail -s test root
Isi dari /etc/mailname
adalah:
mydomain.com
Isinya /etc/aliases
adalah:
root: [email protected]
postmaster: root
di mana [email protected] adalah tempat saya ingin meneruskan email root.
Konten /etc/hosts
sebenarnya sedikit mengejutkan saya:
127.0.0.1 localhost
127.0.1.1 linux1.mylinux.mydomain.com linux1
di mana "mylinux" adalah nama host dari sistem operasi host di mana linux1 berjalan sebagai mesin virtual. Saya tidak yakin bagaimana "mylinux" masuk ke sana. (Tapi bisakah ini benar-benar menjadi alasan masalah saya?)
Jawaban:
Sebagai ususal, periksa log Anda.
Dalam kasus Anda, daemon postfix berpikir mail bukan untuknya dan mengirimkannya tanpa menggunakan
/etc/aliases
Pertama periksa
/etc/hosts
file Anda : itu harus memiliki nama mesin Anda yang sesuai dengan 127.0.1.1:127.0.1.1 linux1.mydomain.com linux1
Periksa
/etc/mailname
juga, dan itu harus konsisten.Periksa Anda
/etc/aliases
untuk melihat apakah pengguna root dikirim ke orang lain, dan ulanginewaliases
perintahnya.Dan itu seharusnya berhasil!
sumber
127.0.0.1
?Jika
mydestination
kosong atau tidak mengandung$myhostname
maka/etc/aliases
akan diabaikan karena postfix menganggap email itu bukan pengiriman lokal dan karenanya tidak akan menggunakan alias lokal. Jadi, biarkanmydestination
di default (postconf -d mydestination
atau hapus darimain.cf
) dan log harus menunjukkanto=<...>
sebagai alamat alias Anda.sumber
mydestination
harus kosong. Kalau tidak, tidak ada surat yang dikirim.Dalam beberapa keadaan, (yaitu saat semua email dikirimkan ke sistem eksternal), lebih mudah untuk mengatur
MAILTO
variabel di crontab root ke alamat email asli. Ini seharusnya mem-bypass pengiriman tradisional ke root dan membuatnya pergi ke tempat yang Anda inginkan.sumber
Tampaknya ada beberapa masalah dengan pembukaan
/root/.forward
daemon postfix, setidaknya pada sistem yang dikeraskan (saya tidak menggali lebih dalam). Meskipun:Anak daemon postfix tidak dapat mengakses .forward:
Saya tidak punya waktu untuk menggali ... Menambahkan entri untuk
/etc/aliases
diikuti olehnewaliases
berfungsi dengan baik.sumber