Postfix Frequently Asked Questions


Up one level | Postfix FAQ

Table of contents

Postfix warnings and error messages

Example configurations

Sendmail incompatibility

Running hundreds of Postfix processes

Postfix performance

Receiving mail via the network

Mail relaying

Remote delivery

Local (non-virtual) delivery

Mailing lists

Virtual domains

Address rewriting

Content filtering

Other transports: UUCP, FAX, etc.

Postfix queue maintenance

Compiling and installing Postfix

Problems with specific Operating Systems

Problems with Compaq

Problems with IRIX


POP or IMAP problems

Postfix adalah sebuah sistem pengiriman email. Postfix tidak mengimplementasikan servis seperti POP atau IMAP untuk membaca email. Terdapat beberapa implementasi POP/IMAP yang bisa berkerja dengan perangkat lunak semacam Posfix

Examples of software that is used successfully with Postfix: Contoh dari beberapa perangkat lunak yang bisa dijalankan secara sukses dengan Postfix


Stand-alone machine

Terlepas dari semuanya, seharusnya Postfix bisa bekerja tanpa perubahan apapun dalam sebuah komputer stand-alone yang mempunyai akses langsung ke Internet. Paling tidak begitulah konfigurasi Postfix awal pada saat menginstall Postfix dari source code-nya Meskipun jika komputer tersebut dibelakang intranet firewall atau memakai koneksi dial-up, itu hanya membutuhkan sedikit waktu saja untuk menkonfigurasi ulang, untuk jelasnya silahkan melihat bagian yang bersangkutan.

Workstations and servers

Pada bagian ini akan digambarkan sebuah lingkungan workstation-server. Dimana sistem mengirim email dengan format user@domain. Dan juga menerima email dengan format user@hostname. Dan server juga menerima email untuk user@domain.

Postfix mempunyai konfigurasi normal pada semua parameter, jadi tulisan dibawah ini hanya menunjukkan yang bisa diubah. Secara normal, Postfix hanya akan merelay email dari klien - klien didalam subnetwork dia sendiri. File master.cf (seperti halnya inetd.conf) hanya perlu tweaking jika anda berada dalam lingkungan atau komputer yang lambat atau cepat

Workstation:

    /etc/postfix/main.cf:
        myorigin = $mydomain

Server:

    /etc/postfix/main.cf:
        myorigin = $mydomain
        mydestination = $myhostname, localhost.$mydomain, $mydomain

Didalam linkungan seperti ini, antara direktori mail spool yang di shared melalui NFS, klien - klien dapat mengakses mailbox mereka melalui POP, atau setiap klien menerima email pada komputer mereka sendiri. Dalam kasus berikutnya, setiap klien mempunyai alias pada server agar server dapat mengirimkan email pada workstation yang bersangkutan:

Server:

    /etc/aliases:
        joe:    joe@joes.workstation
        jane:   jane@janes.workstation

Dalam beberapa sistem, database dari alias tidak terdapat pada /etc/aliases. Untuk mengetahui dimanakah lokasi alias pada sistem anda, ketikan perintah postconf alias_maps.


Null clients

Sebuah null client adalah sebuah mesin yang hanya dapat mengirim email saja. Tetapi tidak dapat menerima email dari jaringan, dan tidak mengirim email secara lokal. Sebuah null client biasanya menggunakan POP atau NFS untuk mengakses mailbox.

Pada contoh berikut ini, sebuah email akan dikirim sebagai user@domain, dan semua email akan diteruskan ke mail server yang bertanggung jawab untuk domain lokal.

    /etc/postfix/main.cf:
        myorigin = $mydomain
        relayhost = $mydomain
	local_transport = error:Pengiriman Lokal tidak diaktifkan

    /etc/postfix/master.cf:
        Comment out the SMTP server entry
        Comment out the local delivery agent entry

Karena semuanya mengirimkan email sebagai user@domain, maka tidak ada email yang dikirimkan sebagai user@nullclient, maka dari itu kita tidak memerlukan konfigurasi khusus pada mail server untuk email yang dialamatkan kepada user@nullclient.


Running Postfix inside an intranet

Cara yang paling gampang dalam mengkonfigurasi Postfix pada sebuah network yang mempunya firewall adalah mengirimkan semua email anda kepada sebuah intranet mail gateway, dan biarkan mail gateway tersebut memproses forwarding-nya.


Running Postfix on a firewall

Catatan: tulisan ini hanya berlakun untuk Postfix versi 2.0 atau lebih. Untuk mengetahui lebih lanjut versi Postfix yang anda pakai, silahkan menjalankan perintah postconf mail_version.

Bagaimana cara mengkonfigurasi Postfix pada komputer firewall sehingga bisa merelay email untuk domain.com ke sebuah komputer gateway dalam 1 network, sehingga hal tersebut menolak email untuk *.domain.com? Masalah ini terjadi karena konfigurasi standar dari relay_domains mail relaying restriction membolehkan email dikirim ke *.domain.com ketika anda mendeklarasikan domain.com.


Running Postfix on a dialup machine

Pada bagian ini dikhususkan untuk koneksi dialup yang mati pada saat - saat tertentu. Untuk koneksi dialup yang selalu jalan 24x7, silahkan lihat bagian workstations and servers.

Jika anda tidak mempunyai nama hostname sendiri (misalnya dengan dynamic IP addressing) dan harus mengirim email sebagai user@your-isp.com, anda juga harus mempelajari pada bagian delivering some users locally while sending mail as user@domain


Postfix breaks "sendmail -v"

Beberapa orang komplain mengenai sendmail -v yang sepertinya tidak lagi menunjukkan adanya pengiriman email.

Dengan sebuah sistem mail terdistribusi seperti Postfix, hal ini adalah sangat sukar di implementasikan. Tidak seperti sendmail, tidak ada proses Postfix mail delivery yang dijalankan dengan kontrol dari user . Sebaliknya, Postfik mengirim email dengan daemon proses sehingga tidak mempunyai hubungan parent-child dengan proses user. Hal ini meniadakan sebagian besar dari kemnungkinan eksploit yang bersangkutan dengan enviroment variables, signal handlers, dan dengan proses yang beratribut lain yang oleh UNIX diturunkan dari proses parent ke proses child.

Postfix menggunakan multiple proses agar dapat memisahkan antar subsystems. Dengan membuat delivery agents untuk berkomunikasi secara langsung kepada proses - proses user membuatnya semakin susah untuk ditembus dan membuat Postfix semakin aman daripada program - program mail seperti biasa.


Postfix sends no "delayed mail" notices

Ketika saya menggunakan Sendmail, setelah 4 jam, sendmail akan selalu mengirim pesan balik kepada pengirim yang mengatakan bahwa adanya penundaan pengiriman email.

Agar Postfix mengirim pesan "delayed mail" setelah 4 jam, maka deklarasikan:

    /etc/postfix/main.cf:
        delay_warning_time = 4h

Dengan Postfix, pesan mail yang tertunda secara standar akan selalu dinon-aktifkan - orang - orang sudah mendapat banyak email.


Postfix sends duplicate mail

Beberapa orang komplain bahwa Postfix mengirim pesan duplikasi. Hal ini terjadi ketika satu pesan telah terkirim kepada beberapa alamat email yang tertuju pada user yang sama. Sebagai contoh dari kejadian ini :

Beberapa orang akan berdebat bahwa hal ini adalah cara yang benar. Hal ini mungkin hanya masalah apa yang diinginkan dan kebiasaan.

Hal ini hanya bisa "diperbaiki" dengan membuat Postfix berjalan lebih lambat. pada contoh diatas, pertama-tama Postfix akan meluaskan semua daftar distribusi sebelum memulai segala pengiriman. Secara normal, Postfix mengirim pesan kepada beberapa alamat yang berbeda secara paralel, dan tak terkecuali pengiriman lokal. Hal inilah yang membuat Postfix bekerja lebih cepat daripada sendamail.


Postfix sends mail to every member of a distribution list

Beberapa orang akan memprotes bahwa Postfix akan mengirim pesa kepada setiap orang yang tercantum pada daftar distribusi, termasuk sang pengirim. Secara standar, Sendmail menghapus sang pengirim dari daftar distribusi. Sendmail akan mengirim pesan kepada sang pengirim jika dan hanya jika "metoo" flag secara jelas diaktifkan.

Wietse percaya bahwa Postfix mengimplementasi proses yang "benar", dan mencurigai bahwa proses standar Sendmail ada peninggalan dari masa lalunya yang gelap ketika Sendmail hanyalan sebuah algoritma yang mudah untuk menghindari pemrosesan alias yang sama.


Postfix ignores the owner-list alias

Biasanya, ketika sebuah alias lokal foo mempunyai alias yang sama dengan owner-foo, Postfix akan melaporkan pesan error kepada pemilik alias daripada pengirim pesan yang asli.

Meskipun begitu, sebagai hasil dari arsitektur implementasi Postfix, alias dari owner-foo hanya terkena dampaknya setelah perluasan alias selesai.

Masalah pengiriman yang terjadi saat mengekspansi nama alias, termasuk juga pengiriman terhadap perintah atau file - file, akan dilaporkan kepada pengirim asal yang tercantum pada alamat email.

Alasannya adalah bounces dikirimkan oleh Postfix queue manager, yang dimana tidak mengetahui bahwa alamat pengirim telah diganti.

Keterbatasan ini akan bisa diperbaiki dengan merubah bagaimanakah Postfix delivery agent memperlakukan email yang tidak bisa dikirimkan.


What does "fatal: open database /etc/aliases.db" mean?

File - file DB dimaintain oleh Berkeley DB library. Pesan diatas mempunyai beberapa arti, seperti dibawah ini:


sendmail has set-uid root file permissions, or is run from a set-uid root process

Secara tradisional, perintah sendmail UNIX terinstall dengan set-uid root permissions. Bahkan banyak MTA lain selain Sendmail menjalankan perintah sendmail dengan set-uid root. Hal ini tidak terjadi dengan Postfix. Perintah sendmail Postfix tidak didesain untuk mempunyai set-uid.

Untungnya, beberapa sistem Linux mempunya utility yang sangat membantu yang dibernama linuxconf yang secara automatis "memperbaiki" file permissions yang benar untuk file yang digunakan untuk perintah sendmail Sendmail. Bahkan ketika anda mereset bit set-uid pada sendmail executable file Postfix, linuxconf dengan senang hati akan merubahnya kembali untuk anda.

Pada sistem SuSE, utility bernama SuSEconfig. pada sistem Linux lain mungkin menggunakan nama yang berbeda. Penolakan umum mengenai keuntungan dan sebagainya. Bisa ditambahkan.

Solusi


sendmail: unable to find out your login name

Pesan ini tercatat ketika memproses email dari sebuah proses yang userid-nya tidak terdaftar pada password file UNIX. Postfix menggunakan informasi ini agar bisa mengeset envelope sender address.

Envelope sender address sendiri juga nilai standar dari From: header address, ketika mendeklarasikan none pada pesan.

Untuk memperbaikinya, deklarasikan envelope sender address pada perintah sendmail:

sendmail -f user@domain ...

Running hundreds of Postfix processes on FreeBSD

Dengan ratusan proses Postfix, kernel lambat laun akan kehabisan file handles; setelah itu, akan kehabisan sockets.

Untuk mengeset kernel parameter berikut ini pada saat booting, tambahkan beberapa baris ini ke dalam file /boot/loader.conf (hal ini telah diverifikasi dengan FreeBSD 4.4):

kern.ipc.maxsockets="5000"
kern.ipc.nmbclusters="65536"
kern.maxproc="2048"
kern.maxfiles="16384"
kern.maxfilesperproc="16384"

Dengan FreeBSD 4.2, parameter pada 3 baris terakhir tidak dapat diset dari /boot/loader.conf. Untuk mengesetnya, bukalah open file limit, kemudian jalankan perintah berikut sebagai root:

# sysctl -w kern.maxfiles=16384
# sysctl -w kern.maxfilesperproc=16384

Dengan FreeBSD 4.2, kern.maxproc bisa diset hanya dengan mengkompile ulang kernel dengan settingan maxusers yang berbeda pada file konfigurasi kernel


Running hundreds of Postfix processes on Linux

Ketika anda menaikkan jumlah proses Postfix menjadi ratusan, kernel lambat laun akan kehabisan file handles; setelah itu sepertinya akan kehabisan slot proses.

Informasi berikut ini tergantung dari versi kernel.

Untuk mengeset parameter pada saat booting pada Linux sistem yang mempunyai /etc/sysctl.conf, tambahkan baris perintah berikut ini:

fs.file-max = 16384
kernel.threads-max = 2048

Untuk mengeset parameter kernel pada run time, jalankan perintah berikut ini sebagai root:

# echo 16384 > /proc/sys/fs/file-max
# echo 2048 > /proc/sys/kernel/threads-max

Running hundreds of Postfix processes on Solaris

Agar dapat menjalankan ratusan proses, Anda mungkin harus menyesuaikan per-process open file limit. Menurut Solaris FAQ, tambahkan beberapa baris perintah berikut ini ke dalam file /etc/system untuk Solaris 2.4 dan versi setelahnya.

* set hard limit on file descriptors
set rlim_fd_max = 4096
* set soft limit on file descriptors
set rlim_fd_cur = 2048

Running thousands of Postfix delivery agents

Agar dapat menjalankan Postfix dengan ribuan proses delivery agents, Anda harus mengkompile ulang Postfix dengan nilai yang sesuai pada konstanta FD_SETSIZE :

% make tidy
% make makefiles "CCARGS=-DFD_SETSIZE=2048"
% make

Mail stays queued in the incoming queue

Saya mempunyai banyak email pada incoming queue, tapi Postfix hanya menjalankan beberapa outbound SMTP deliveries. Mengapa tidak menjalankan beberapa SMTP client lagi?

Masalah anda mungkin satu dari beberapa dibawah ini


Postfix responds slowly to incoming SMTP connections

Pertanyaan:
Server Postfix saya terlalu lambat. Ketika saya telnet pada SMTP port (telnet hostname 25), respon yang diberikan datang setelah 40 detik. Sedang, ketika saya telnet pada POP port (telnet hostname 110), responnya sangat cepat tanpa delay.

Jawaban:

1) Anda perlu untuk menkonfigurasi Postfix agar bisa menjalankan beberapa proses SMTP server. Edit smtpd entry dalam file master.cf dan sesuaikan limit proses, atau menaikkan setting default_process_limit dalam file main.cf. Jalankan perintah postfix reload agar perubahan menjadi efektif.

2) Anda mempunyai masalah pada name service.

Postfix memanggil fungsi gethostbyname() pada C library dan gethostbyaddr() agar dapat menemukan SMTP client hostname. Fungsi - fungsi ini menggunakan beberapa files sistem konfigurasi agar dapat memenuhi permintaan. Kemungkinan malah akan berakhir dengan memakai DNS untuk alasan itu, yang tidak berada dalam kontrol Postfix.

Tergantung dari sistem anda, file - file kontrol berikut ini bisa bernama /etc/nsswitch.conf, /etc/svcorder, /etc/host.conf atau bernama yang lain. File - file ini menentukan apakah fungsi library C akan menggunakan local /etc/hosts sebelum atau sesudah DNS.


Postfix logs SMTP clients as IP addresses

Log - log koneksi client SMTP server Postfix tercatat dengan angka ip address bukan dengan nama host. Ketika saya menggunakan nslookup alamat ip tsb menghasilkan nama.

Anda menjalankan server smtp Postfix didalam sebuah chroot jail untuk keamanan ekstra, tetapi beberapa files konfigurasi hilang atau ada informasi yang tidak tepat. Perintah "postfix check" akan melaporkan file - file apakah yang terdapat informasi yang salah tsb. Contoh:

warning: /var/spool/postfix/etc/resolv.conf and /etc/resolv.conf differ
warning: /var/spool/postfix/etc/localtime and /etc/localtime differ

Agar bisa menjalankan dalam chroot jail, klien SMTP Postfix dan server perlu untuk mengkopi file konfigurasi dari sistem didalam direktory Postifix queue. Letak dari file - file tersebut tergantung dari sistem yang dipakai, tapi Anda paling tidak memerlukan :

    /var/spool/postfix/etc/resolv.conf
    /var/spool/postfix/etc/services

Dan tentu saja, direktori - direktori dan file - file ini harus mempunyai kepemilikan oleh root, tetapi mereka harus bisa diakes oleh postfix user, jadi direktori - direktori tersebut harus dalam mode 755 dan file - file dalam mode 644.

Untuk keterangan lebih lanjut, lihatlah didalam file - file pada direktori examples/chroot-setup dari distribusi Postfix source code.


warning: xxx.xxx.xxx.xxx: address not listed for hostname yyy.yyy.yyy

Postfix menggunakan hostname untuk mengkontrol junk mail dan mail relay. Hal ini berarti, dalam teorinya seseorang bisa saja men-setup informasi bogus DNS, untuk melewati junk mail dan relay controls Anda.

Ketika Postfix mencari nama host dari IP address SMTP client, Postfix juga mengecek apakah IP address SMTP client terdaftar pada nama host dari SMTP client.

Jika alamat IP SMTP client tidak terdaftar pada hostname SMTP client, maka Postfix menyimpulkan bahwa SMTP client hostname tidak sesuai dengan alamat IP SMTP client, dan menghiraukan hostname SMTP client. Sebuah peringatan akan di log, sehingga anda bisa mencari tahu kenapa sebuah SMTP client di hentikan atau tidak oleh pengecekan junk mail atau mail relay.

Anda bisa mengkontak orang yang mengelola SMTP client DNS records, dan menjelaskan kepada mereka bahwa setiap alamat IP membutuhkan 1(satu) PTR record, dan PTR record yang ini membutuhkan sebuah A record yang cocok.

Beberapa orang yang membaca RFC - RFC bahwa untuk satu alamat IP bisa memiliki beberapa PTR records, tapi hal tersebut membuat PTR records menjadi kurang berguna daripada yang sudah ada. Dalam beberapa kasus, mempunyai beberapa nama setiap alamat IP hanya akan memperburuk masalah dalam mendapatkan hostname SMTP client.


Relaying mail for mobile users

Saya mempunyai Postfix setup pada sebuah server tetapi saya menginginkan untuk menyeleksi group dari pengguna internet yang bisa merelay email melalui server tsb. Dan saya menyeleksinya menggunakan basis alamat IP (contoh, satu blok 256 alamat ip dinamis) atau berbasis pada hostname (blahblah.dialup.isp.com)

Cara yang paling sering dipakai adalah menyuruh user untuk mengirim email melalui sebuah authenticated protocol ketimbang memakai protokol SMTP biasa.

Cara lain yang bagus adalah menggunakan SMTP protokol biasa dan mengautentifikasi user terlebih dahulu, sebagai contoh, dengan sebuah skema "Loginlah dahulu melalu POP sebelum menggunakan SMTP". Dalam hal ini, ada perangkat lunak yang mengelola tabel akses Postfix-compatible dengan informasi alamat IP client.

    /etc/postfix/main.cf:
        smtpd_recipient_restrictions =
            permit_mynetworks
            check_client_access hash:/etc/postfix/client_access
            reject_unauth_destination

    /etc/postfix/client_access:
        4.3.2.1         OK
        5.4.3.2         987654321

Specify dbm instead of hash if your system uses dbm files instead of db files. To find out what map types Postfix supports, use the command postconf -m.

Catatan. Beberapa perangkat luna non-Postfix menggunakan file - file btree ketimbang file - file hash. Untuk itu, Anda harus menyesuaikan restriksi pada check_client_access secara benar.

Sebuah cara yang jarang dipakai adalah berdasarkan pada alamat IP client (contoh, sebuah 256-blok) atau hostname DNS (contoh, blahblah.pop.isp.com). Skema ini tidak mengautentifikasi user. Jika anda menggunakan kontrol akses relay bedasarkan pada IP/DNS, berdoalah bahwa tak ada pengguna yang menggunakan ISP yang sama, mengarahkan spam software mereka pada server anda, atau anda akan berakhir dengan tercantum pada black-list yang ada di internet.

Cara yang paling jarang dipakai adalah berdasarkan pada alamat pengirim. Hal ini sama saja dengan men-spoof oleh siapa saja yang menerima email dari tempat anda. Jika anda menggunakan kontrol akses alamat pengirim, berdoa sajalah agar tidak ada spammer yang mengetahui alamat dari user anda.

    /etc/postfix/main.cf:
        smtpd_recipient_restrictions =
            permit_mynetworks
            check_client_access hash:/etc/postfix/client_access
            check_sender_access hash:/etc/postfix/sender_access
            reject_unauth_destination

    /etc/postfix/client_access:
        11.22.33                OK
        dialup.isp.com          OK

    /etc/postfix/sender_access:
        joe@my.domain           OK
        blow@my.domain          OK

Restricting what users can send mail to off-site destinations

Bagaimanakah saya bisa mengkonfigurasi Postfix sehingga beberapa user bisa mengirim email ke internet dan beberapa tidak bisa. User yang tidak mempunyai akses harus menerima sebuah self-generated bounce message. Dan tolong jangan mendiskusikan apakah perestriksian akses dibutuhkan dalam hal ini, karena hal tersebut bukan salah satu pilihan saya.

Postfix mendukung restriksi pada setiap user. Restriksi ini di implementasikan oleh SMTP server. Untuk itu, user - user yang melanggar kebijakan tersebut, maka email mereka akan ditolak oleh SMTP server. Seperti ini:

554 <user@remote>: Access denied

Implementasi ini menggunakan 2 tabel lookup. Satu tabel mendefinisi apakah user dibatasi untuk mengirim email, dan tabel lainnya mendefinisikan apakah tujuannya adalah lokal. Hal terakhir ini adalah sebuah latihan untuk para pembaca, untuk merubah ini menjadi sebuah skema dimana hanya beberapa user yang mempunyai akses untuk mengirim email yang ditujukan diluar, dan dimana beberapa user yang tidak mendapatkan akses.

Contoh ini mengasumsikan file DB/DBM, tetapi hal ini bisa juga dilakukan dengan LDAP atau SQL.

    /etc/postfix/main.cf:
        smtpd_recipient_restrictions =
            check_sender_access hash:/etc/postfix/restricted_senders
            ...other stuff...

        smtpd_restriction_classes = local_only
        local_only = check_recipient_access hash:/etc/postfix/local_domains, reject

    /etc/postfix/restricted_senders:
        foo@domain      local_only
        bar@domain      local_only

    /etc/postfix/local_domains:
        this.domain     OK      matches this.domain and subdomains
        that.domain     OK      matches that.domain and subdomains

Deklarasikan dbm bukan hash jika sistem anda menggunakan file dbm bukan file db. Untuk mengetahui tipe map apa yang mendukung Postfix, gunakanlah perintah postconf -m.

Dengan munculnya sejumlah kata smtpd_restriction_classes, sehingga Postfix bisa membuka /etc/postfix/local_domains.db sebelum memasuki chroot jail, sehingga ini hanyalah sebuah contoh implementasi.

Skema ini tidak mengautentifikasi user, untuk itu bisa di bypass dengan beberapa cara:


Configuring Postfix as MX host for a remote site

Ketika anda adalah secondary mx untuk sebuah remote site, inilah yang anda butuhkan:

    DNS:
        the.backed-up.domain.tld        IN      MX 100 your.machine.tld

    /etc/postfix/main.cf:
        relay_domains = $mydestination the.backed-up.domain.tld
        smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination

DO NOT LIST the.backed-up.domain.tld in MYDESTINATION

Ketika anda adalah primary mx untuk sebuah remote site anda juga butuh :

    /etc/postfix/main.cf:
        transport_maps = hash:/etc/postfix/transport

    /etc/postfix/transport:
        the.backed-up.domain.tld       relay:[their.mail.host.tld]

Deklarasikan dbm bukan hash jika sistem anda menggunakan file dbm bukan file db. Untuk mengetahui tipe map apa yang mendukung Postfix, gunakanlah perintah postconf -m.


Mail stays queued with: Host not found, try again

Ketika saya mengirim email kepada alamat remote, hal dibawah ini yang terjadi setelahnya :

    Jul 14 12:45:38 myhostname postfix/qmgr[2246]: 74FBF30501:
        from=<sender@sender.domain> size=309 (queue active)
    Jul 14 12:45:39 myhostname postfix/smtp[2349]: 74FBF30501:
        to=<recip@recip.domain> relay=none, delay=3944,
        status=deferred (Name service error for name=recip.domain
        type=MX: Host not found, try again)

Bagaimanapun juga, saya bisa nslookup hostname dengan baik.

Hal ini bisa berarti beberapa masalah berikut ini.


Mail fails consistently with timeout or lost connection

Setiap kali, email gagal dikirim dengan pesan error "timed out while sending end of data -- message may be sent more than once", atau dengan: "lost connection after DATA". Seringkali terjadi kehilangan jaringan, sistem crash. Tidak banyak yang dapat anda lakukan. Biasanya masalah ini hilang dengan sendirinya.

Bagaimanapun juga, ketika anda seringkali gagal dalam mengirim email secara konstan, maka mungkin anda mempunyai masalah yang berbeda: kerusakan pada penemuan jalur MTU. Atau bisa disebabkan oleh PIX firewall yang rusak.

Bug Cisco PIX "fixup protocol smtp"

Cisco PIX firewall mempunyai sebuah bug saat menjalankan perangkat lunak yang lebih tua dari versi .2(4) atau 6.0(1).

ID bug ini adalah CSCds90792. Fitur "fixup protocol smtp" tidak dapat secara benar mengkoreksi untuk menangani kasus dimana "." dan "CRLF" pada akhir sebuah email yang dikirim dengan paket berbeda.

Bagaimanakah untuk mengetahui apakah pengirim berada dibelakang Cisco PIX dengan "fixup protocol smtp" yang aktif? Sebagaimana pada versi 5.1 dan selanjutnya, perintah fixup protocol smtp merubah karakter di smtp banner menjadi asterisks kecuali untuk karakter "2", "0" dan "0 SPACE".

Ketika anda terhubung dengan pengirim yang berada dibelakang filter semacam ini, anda akan melihat sesuatu seperti:

220 **************************************0******0*********20 ****200**0*********0*00

Pencarian jalur IP MTU

Dengan latar belakang seperti ini. dengan sebuah protokol SMTP, perintah HELO, MAIL FROM DAN RCPT TO dan responnya menjadi relatif lambat. Ketika anda terhubung dengan sendmail versi lama, setiap perintah dan setiap respon akan terkirim dengan paket yang berbeda, karena sendmail tidak mengimplementasi perintah pipelining ESMTP terkecuali versi - versi yang baru.

Isi dari email, bagaimanapun juga terkirim sebagai beberapa datagrams, setiap datagram biasanya berkisar antara kbyte besar atau lebih besar dari itu, tergantung dari MTU network lokal.

Ketika email gagal secara rutin karena timeout, saya menduka bahwa mesing pengirim menjalankan sistem UNIX yang modern yang mengimplementasikan pencarian jalur MTU. Hal ini mengakibatkan server mengirim paket - paket tersebut sebesar yang mungkin terkirim melalui LAN, dengan tidak mengeset IP DON'T FRAGMENT bit, mencegah router yang berada ditengah yang akan memisahkan packets yang terlalu besar untuk network mereka.

Tergantung dari jalur jaringan yang dipakai oleh email, beberapa router yang pada jalur tersebut akan merespon dengan pesan ICMP MUST FRAGMENT yang mengatakan bahwa paket terlalu besar. Normalnya, komputer pengirim akan mengirim kembali data setelah memisahkan data tersebut menjadi potongan - potongan kecil.

Meskipun begitu, semua menjadi rusak begitu beberapa router yang dekat dengan mesin pengirim mengeluarkan semacam pesan ICMP feedback, hal ini adalah sebuah cara yang salah untuk melindungi sistem dari serangan semacam itu. Karenanya, pesan ICMP feedback tidak pernah mencapai mesin pengirim, dan koneksi menjadi timeout.

Hal ini sama dengan masalah konfigurasi yang menyebabkan masalah dengan web server yang berada di belakang packet filter yang salah konfigurasi: images/file - file yang kecil dapat dikirim sedangkan yang berukuran besar akan timeout karena server tidak melihat adanya pesan MUST FRAGMENT feedback.

Pencegahan:semua mesing pengirim, menonaktifkan pencarian jalur MTU. Email akan bisa keluar, tetapi orang lain akan tetap menderita. Bagaimanakah cara menonaktifkan pencarian jalur MTU? Itu tergantung. Solaris mempunyai sebuah perintah ndd; sistem yang lain mempunyai alat yang berbeda seperti sysctl untuk mengontrol parameter kernel yang berjalan pada sistem.

Pencegahan: pada mesin penerima, buatlah MTU yang lebih kecil. Sebagai contoh, orang - orang yang menggunakan PPPoE (PPP over Ethernet) seringkali harus memilih sebuah MTU yang lebih kecil dari standar 1500 dari ethernet.

Pemecahan: temukanlah router yang menolak pesan ICMP MUST FRAGMENT, dan yakinkan orang yang bertanggung jawab untuk memperbaiki konfigurasinya.


Postfix does not try all the MX addresses

Ketika mengirim email, Postfix akan mencoba semua alamat MX menurut settingnya, dan akan berhenti pada saat server pertama mengirim SMTP. Meski begitu, sekali sebuah pesan SMTP diterima. Postfix tidak akan pindah ke host MX lainnya jika pengiriman gagal.

Hal ini pada akhirnya akan terpecahkan ketika Postfix mengimplementasikan SMTP connection caching.


What does "fatal: unknown service: smtp/tcp" mean?

File /etc/postfix/master.cf pada Postfix anda mendeklarasikan bahwa klient SMTP Postfix berjalan didalam lingkungan chroot. Meski begitu file tersebut dibutuhkan untuk modus operasi yang tidak terinstall dibawah /var/spool/postfix.

Mengaktifkan operasi chroot menambah sebuah pelindung non-trivial untuk para penetrasi sistem.

Ada 2 solusi:


Mail delivery fails with: "unknown mail transport error"

Hal ini adalah salah satu kesempatan untuk ketemu dengan teman anda egrep dan less. Aktifitas Postfix, termasuk progress dan failure, dicatat dalam sebuah file log, biasanya bernama /var/log/maillog. Untuk mengetahui dimanakah aktifitas Postfix dicatat pada mesin anda, periksalah file /etc/syslog.conf.

Untuk mengetahui masalah untuk "unknown mail transport error", ketikan perintah berikut ini:

egrep '(warning|fatal|panic):' /var/log/maillog | less
Perhatikanlah pada pesan yang mempunyai label sebagai fatal dan panic. Hal ini menggambarkan kegagalan katastropic yang perlu dialamatkan sebelum Postfix merasa senang. Masalah yang mempunyai label fatal bisa diperbaiki oleh anda sendiri, dengan cara mengkostumasikan file konfigurasi, perijinan file, dsb. Masalah yang mempunyai label panic diperbaiki oleh pencipta Postfix, dengan merubah Postfix source code.

Root's mail is delivered to nobody

Jika anda menggunakan
procmail (atau dengan perintah yang lain) untuk mengirim email secara local, Postfix tidak akan mengirim sebagai root. Melainkan, Postfix akan menjalankan procmail(atau apalah itu) sebagai nobody. Mungkin suatu hari nanti Wietse akan percaya pada Postfix untuk menjalankan perintah external sebagai root.

Solusi: seperti pada saat anda diharapkan untuk tidak login sebagai root(terkecuali untuk kondisi yang khusus), anda tidak tidak diharapkan untuk menerima email sebagai root.

Pada beberapa sistem, database alias tidak pada fiel /etc/aliases. Untuk mengetahui dimanakan database alias pada sistem anda, jalankan perintah postconf alias_maps.


What does "biff_notify: Connection refused" mean?

Secara standar, Postfix local delivery agent akan mencoba untuk menotifikasikan local users dari email baru yang datang. Fitur ini menggunakan servis jaringan comsat, dimana fitur ini dinonaktifkan oleh sebagian besar sistem UNIX untuk alasan kinerja dan keamanan.

Pesan peringatan Postfix mempunyai arti bahwa penotifikasian email baru gagal karena servis jaringan comsat dinonaktifkan.

Untuk menonaktifkan comsat client code dalam Postfix delivery agent, deklarasikan:

/etc/postfix/main.cf:
    biff = no

Catatan: versi terbaru dari procmail juga menghasilkan notifikasi biff. Untuk mematikan biff secara sempurna anda mungkin juga harus memperbarui fie konfigurasi procmail.

Untuk mengaktifkan servis jaringan comsat, hilangkan tag komentar dari baris yang bersangkutan pada file inetd.conf, dan lakukan kill -HUP pada proses inetd.


What does "NIS domain name not set - NIS lookups disabled" mean?

Pesan peringatan tersebut mempunyai arti bahwa NIS (Network Information Service) tidak diaktifkan pada server anda. Hal ini bukan masalah. Hanya saja sangatlah sulit untuk Postfix untuk mengetahui hal seperti ini secara cepat.

Untuk menonaktifkan NIS client code dalam Postfix local delivery agent, perbaruilah file main.cf pada baris yang bersangkutan dan deklarasikan satu dari berikut ini, tergantung dari jenis nama file aliases:

/etc/postfix/main.cf:
    alias_maps = $alias_database

Hal ini akan memaksa Postfix hanya menggunakan local aliases database, jika salah satu telah terdefinisi.


Postfix rejects mail with "User unknown in local recipient table"

Pada Postfix versi 2.0, anda diharapkan dapat memberitahu kepada Postfix SMTP server apakah bisa mendapatkan daftar local users dengan membaca semua tabel dengan local username atau addresses pada parameter local_recipient_maps. Untuk mengetahui versi berapakah Postfix anda, jalankan perintah postconf mail_version.

Standar setting dari local_recipient_maps mengasumsikan bahwa anda menggunakan delivery agent standar Postfix:

    /etc/postfix/main.cf:
        local_recipient_maps = $alias_maps, proxy:unix:passwd.byname

Anda membutuhkan bagian proxy: saja jika master.cf mendeklarasikan bahwa Postfix SMTP server jalan dengan mode chroot. Seperti yang telah didistribusikan oleh pencipta, Postfix tidak menjalankan daemon dengan chroot.

Tabel local recipients dicari berdasarkan pada recipient address (user@domain) dan oleh recipient name (address minus domain). Postfix tidak memperdulikan apakah hasil dari lookup, jadi anda bisa menggunakan sembarang database yang Postfix dapat mengerti formatnya.

Untuk menghentikan Postfix dari menolak local email:

Untuk menonaktifkan fitur local_recipient_maps, deklarasikan:

    /etc/postfix/main.cf:
        local_recipient_maps =

Dengan setting ini, SMTP server Postfix tidak akan menolak email untuk local recipients yang tidak diketahui.


Delivering some users locally while sending mail as user@domain


Support for maildir-style mailboxes

Maildir adalah pengorganisasian one-file-per-message secara spesifik yang diperkenalkan dengan sistem qmail oleh Daniel Bernstein. Agar bisa menjalankan pengiriman dengan maildir-style, deklarasikan, sebagai contoh:

    /etc/postfix/main.cf:
        home_mailbox = Maildir/

Segala macam pathname relatif yang diakhiri dengan / menyalakan pengiriman maildir. Value home_mailbox ditambahkan pada direktori user home pathname.

Format maildir juga didukung dengan pengiriman melalui aliases atau melalui file - file .foward. Deklarasikan /file/name/ sebagai tujuan. Karakter trailing / akan menyalakan pengiriman maildir.


Using Procmail for system-wide local delivery

Peringatan: Jika anda menggunakan procmail dalam masalah ini, anda harus mengeset sebuah alias untuk root yang akan men-foward mail untuk root kepada user yang asli. Lihatlah pada FAQ yang berjudul "Mail for root is delivered to nobody". Postfix mengekspor informasi melalui enviroment variables. Isi dari informasi tersebut disensor. Karakter yang mungkin mempunyai arti tersendiri untuk shell termasuk whitespace, akan digantikan dengan underscores.

DOMAIN
Tulisan yang berada pada sisi kanan dari @ dalam recipient address.
EXTENSION
Adress extension part opsional.
HOME
Direktori dari recipient home.
LOCAL
Tulisan yang berada pada sisi kiri dari @ pada recipient address, sebagai contoh, $USER+$EXTENSION.
LOGNAME
Recipient username.
RECIPIENT
Alamat keseluruhan dari recipient address, $LOCAL@$DOMAIN.
SENDER
sender address secara lengkap.
SHELL
recipient login shell.
USER
recipient username.

What does "warning: cannot access UNIX password database" mean?

Pesan ini tercatat ketika, contoh, SMTP server Postfix tidak bisa mengakses database dari UNIX password.


Getting rid of the ugly Delivered-To: header

Beberapa orang akan memprotes mengenai header pesan Delivered-To: yang jelek yang ditambahkan Postfix pada email mereka. Secara standar, Postfix menambahkan header ini ketika meneruskan email, dan ketika mengirim kedalam file (mailbox) atau perintah. Tujuannya adalah untuk menghentikan mail forwarding loops sesegera mungkin, dalam hal ini, sebelum mereka mempunyai kesempatan untuk terjadi. Tetapi header ini jelek, hal yang tak perlu dipertanyakan.

Pemecahannya, mengukur dari gejala perang untuk mematikan Delivered-To: header:

Lihat pula FAQ untuk masalah dengan perintah majoromo approve.


Postfix breaks the majordomo "approve" command

Postfix local delivery agent menambahkan sebuah header pesan Delivered-To: untuk mencegah perulangan mail forwarding. Dengan majordomo mailing lists, Delivered-To: akan menghambat pada saat moderator akan menyetujui posting yang akan dikirm kedalam milis. Postfix menganggap hal ini sebagai perulangan.

Saat ini, solusi yang paling direkomendasi adalah untuk mengedit approve script dan menghilangkan baris header yang cocok dengan:

    /delivered-to/i

Ya, hal ini mengasumsikan bahwa moderator tahu apa yang dia kerjakan.

Cara yang kurang dipilih adalah tidak memasukkan Delivered-To: ketika mengirim kepada sebuah perintah seperti majordomo. Lihatlah FAQ entry yang berjudul "Getting rid of the ugly Delivered-To: header".


Postfix accepts MAIL FROM and RCPT TO "| command"

Dengan Postfix, | atau / mempunyai makna spesial hanyak pada saat tanda tersebut kluar pada aliases, file .forward atau pada files :include:. Tanda tersebut tidak mempunyai makna spesial pada alamat email.

Jika anda harus menerima email untuk sistem dengan 10-year old vulnerabilities, maka sangatlah penting untuk men-setup menggunakan sebuah filter regexp yang menolak perintah yang berpotensial sangat membahayakan seperti MAIL FROM atau RCPT TO.

    /etc/postfix/main.cf:
        smtpd_sender_restrictions =
            regexp:/etc/postfix/envelope-regexp
            reject_unknown_sender_domain
        smtpd_recipient_restrictions =
            regexp:/etc/postfix/envelope-regexp
            permit_mynetworks
            reject_unauth_destination

    /etc/postfix/envelope-regexp:
        /[/|]/  REJECT

Bagaimanapun juga, menolak semua envelope addresses dengan / akan mengakibatkan masalah dengan pemikiran sederhana X.4000 ke mapping alamat Internet yang akan meninggalkan terkuaknya X.4000 struktur alamat.

Lihat juga dokumentasi pada header checks restrictions untuk isi dari header message. Pelarangan ini bisa digunakan untuk melindungi dari serangan dengan perintah atau file destinations in, sebagai contoh, Errors-To: atau Return-Receipt_To: header message.


Protecting internal email distribution lists

Kami ingin mengimplementasi sebuah daftar distribusi email internal. Sesuatu seperti all@our.domain.com, dimana aliases kepada semua pegawai. Pada awalnya kami menggunakan aliases map, tetapi hal tersebut malah mengakibatkan "all" dapat diakses dari "luar", dan hal ini saya tidak menginginkan... :-)
Postfix bisa diimplementasikan per-address access control. Hal yang mengikutinya berdasar pada SMPT client IP address, dan hal ini adalah melakukan IP spoofing.

    /etc/postfix/main.cf:
        smtpd_recipient_restrictions =
            hash:/etc/postfix/access
            ..the usual stuff...

    /etc/postfix/access:
        all     permit_mynetworks,reject

Deklarasikan dbm sebagai pengganti hash jika system anda menggunakan file dbm sebagai pengganti file db. Untuk mengetahui tipe map apa yang mendukung Postfix , gunakanlah perintah postconf -m.

Sekarang, hal itu telah cukup ketika mesin anda menerima semua Internet mail langsung dari Internet. Tetapi tidak jika network anda lebih sedikit lebih besar dari satu kantor. Sebagai contoh, backup MX hosts anda akan men-"launder" IP address client dari email yang berasal dari luar sehingga akan kelihatan dari mesin yang dipercaya.

Pada umumnya anda membutuhkan 2 lookup tables: 1 table yang akan mendaftar tujuan yang butuh untuk dilindungi, dan 1 tabel lainnya yang akan mendaftar yang akan diberi ijin untuk mengirimkan kepada tujuan yang dilindungi.

Hal yang mengikuti berdasar pada SMTP envelope address pengirim, dan hal ini adalah melakukan SMTP sender spoofing.

    /etc/postfix/main.cf:
        smtpd_recipient_restrictions =
            hash:/etc/postfix/protected_destinations
            ..the usual stuff...

        smtpd_restriction_classes = insiders_only
        insiders_only = check_sender_access hash:/etc/postfix/insiders, reject

    /etc/postfix/protected_destinations:
        all@my.domain   insiders_only
        all@my.hostname insiders_only

    /etc/postfix/insiders:
        my.domain       OK
        another.domain  OK

Kata - kata yang tidak perlu pada smtpd_restriction_classes sangat dibutuhkan sehingga Postfix mengetahui yang manakah lookup tabel yang perlu dibuka sebelum memasuki chroot jail. Hal ini hanyalah sebuah contoh dari implementasi.

Sangat mudah mensiasati sistem ini, karena yang dilakukan hanyalah men-spoof SMTP address pengirim.

Jika daftar internal adalah sebuah low-volume one, mungkin akan lebih masuk akal untuk membuatnya menjadi moderate.


Postfix rejects mail with "User unknown in virtual alias table"

Jawaban: Anda telah mendaftarkan virtual domain name pada tabel yang terdefinisi dengan parameter virtual_alias_domains, tetapi recipient address tidak terdaftar pada tabel yang terdefinisi dengan parameter virtual_alias_maps.

Jika anda menginginkan untuk mengirim domain melalui Postfix virtual(8) mailbox delivery agent, maka anda harus mendaftar virtual domain name pada tabel yang terdefinisi dengan parameter virtual_mailbox_domains.


Postfix rejects mail with "User unknown in virtual mailbox table"

Jawaban: anda telah mendaftarkan virtual domain name pada tabel yang terdefinisi dengan parameter virtual_mailbox_domains, tetapi recipient address tidak terdaftar pada tabel yang terdefinisi dengan parameter virtual_mailbox_maps.

Jika anda menginginkan untuk mengirim domain sebagai sebuah virtual(5) alias domain, dimana setiap alamat dialiaskan pada sebuah real atau remote address, maka anda harus mendaftarkan virtual domain name pada tabel yang terdefinisi dengan parameter virtual_alias_domains.


Postfix does not refuse mail for unknown users in virtual domains

Mail for unknown users in a virtual domain fails with "mail loops back to myself"

Postfix refuses mail for virtual domains with "relay access denied"

Solutions:

Commands, mailing lists, and /file/name destinations don't work in virtual domains

Jawaban cepat: setup "punch through" virtual aliases yang mengarahkan mail ke local Postfix aliases:

    /etc/postfix/main.cf:
        virtual_alias_maps = hash:/etc/postfix/virtual

    /etc/postfix/virtual:
        listname@virtual.tld            listname
        owner-listname@virtual.tld      owner-listname
        listname-request@virtual.tld    listname-request

    /etc/aliases:
        listname: "|whatever"
        owner-listname: user@domain
        listname-request: "|whatever"

Hal ini kan mengarahkan mail untuk virtual address listname@virtual.tld dan lainnya kepada local address listname@your.domain.tld dan lainnya.. Mail untuk local aliases ini akan dikirimkan kepada perintah eksternal atau files dsb. oleh Postfix local delivery agent.

Jawaban panjangnya:

Mengirimkan email kepada sebuah file atau perintah adalah sebuah operasi security yang sangat sensitif, dikarenakan operasi tsb harus dijalankan dengan akses yang benar. Hanya akses root software seperti Postfix local delivery agent yang bisa membuat hak akes untuk perintah ataupun pengiriman file.

Untuk alasan keamanan, Postfix mencoba untuk menghindari akes root sebisa mungkin. Biasanya, Postfix virtual mapping dilakukan dengan sebuah non-akses daemon, sehingga tidak ada cara yang aman untuk menjalan perintah ataupun mengirim file yang terdefinisi pada virtual maps.


Receiving a virtual domain in a mailbox

Pertanyaan: bagaimana untuk menerima semua email untuk sebuah domain pada sebuah mailbox tanpa kehilangan informasi asli pengirim? Postfix Delivered-To mail header hanya menunjukkan pemilik dari mailbox, bukan virtual address kemana email tsb dikirimkan.

Jawaban: Postfix mencatat alamat pengirim yang asli pada header pesan X-Original-To:.

Hal ini membutuhkan parameter enable_original_recipient tidk dirubah dari nilai awalnya yang yes. Dengan enable_original_recipient yang diset no, pesan untuk beberapa recipients pada domain hanya akan dikirimkan kepada penerima pertama, dan header X-Original-To: tidak akan ditambahkan pada pesan tsb.


Address masquerading with exceptions

Untuk orang yang berada diluar organisasi anda, sangat diinginkan untuk melihat alamatnya dengan bentuk user@company.com daripada alamat dengan individual internal hostnames. Hal ini bisa dilakukan dengan address masquerading.

Address masquerading ditujukan hanya untuk digunakan pada mail gateway.

Dalam beberapa kasus, anda mungkin mengharapkan beberapa users atau hosts dikecualikan dari masquerading.

Seperti biasanya, jalankan perintah postfix reload agar perubahan menjadi efektif.


What does "Error: too many hops" mean?

Jawaban singkat: pesan ini perarti bahwa email tersebut mungkin mengalami looping. Jika anda melihat ini setelah anda menyalakan Postfix content filtering, maka anda telah melakukan kesalahan, yang menyebabkan email terfilter berulangkali. Hal ini dapat disembuhkan dengan menggunakan secara tepat dari content_filter=, header_checks=, and body_checks=.

Jawaban panjang: pesan tersebut mempunyai banyak pesan header Received:. Sebuah header received akan ditambahkan manakala Postfix (atau MTA lainnya) menerima sebuah pesan. Sejumlah besar pesan header Received: adalah pertanda bahwa mail tersebut mengalami looping.

Komentar: email menggunakan teknik yang berbeda yang digunakan untuk menghindari IP forwarding loops. Dengan IP, pengirim mengeset sebuah field TTL(time to live) pada header IP. Field ini berkurang pada setiap router yang dilalui. Ketika TTL mencapai nol, paekt tersebut dibuang dan pesan error ICMP akan kembali kepada pengirim.


Using UUCP over TCP

Subjek ini muncul manakala seseorang menanyakan tentang solusi "domain in a mailbox". Untuk informasi awal, lihatlah petunjuk dibawah ini.

Setting up an Internet to UUCP gateway

Berikut adalah cara bagaimana sebuah mesin yang berada pada internet dan mengirimkan beberapa tetapi tidak semua non-local mail melalui UUCP. lihatlah FAQ entry UUCP-only untuk mensetting sebuah host UUCP-only.


Using UUCP as the default transport

Berikut adalah cara untuk merelay semua email anda melalui sebuah UUCP link. Lihatlah FAQ entry Internet to UUCP untuk mensetup sebuah mesin gateway antara UUCP dan SMTP.


Sending mail to a FAX machine

Informasi berikut ini diberikan oleh Joerg Henne:

Dibawah ini kita menggunakan skema <fax number>@fax.our.domain dengan Postfix dan HylaFax. Berikut setting yang digunakan:

    /etc/postfix/master.cf:
        fax       unix  -       n       n       -       1       pipe
            flags= user=fax argv=/usr/bin/faxmail -d -n ${user}

    /etc/postfix/transport:
        fax.your.domain   fax:localhost

    /etc/postfix/main.cf:
        transport_maps = hash:/etc/postfix/transport
        fax_destination_recipient_limit = 1

Limit proses dari 1 pada file master.cf sangat dibutuhkan oleh fax software yang tidak dapat menangani beberapa permintaan pada saat yang bersamaan. Hal ini tidak akan merugikan.

Entry fax_destination_recipient_limit (oleh Simon, Mr. Simix) sangat dibutuhkan oleh fax software yang tidak dapat mempunyai lebih dari 1 tujuan pada baris perintahnya. Hal ini juga tidak merugikan.

Deklarasikan dbm bukannya hash jika sistem anda menggunakan file dmb bukannya db. Untuk mengetahui tipe map apakah yang mendukung Postfix, gunakanlah perintah postconf -m.

Catatan: untuk lebih aman. Jangan cantumkan fax.your.domain pada DNS :-)


Deleting a message from the Postfix queue

Perintah postsuper mempunyai pilihan untuk menghapus file Postfix queue message. Untuk menghapus pesan dengan queue id ABCDEF, mungkin bisa didapat dari mailq output, satu yang mungkin digunakan:

# postsuper -d ABCDEF

Untuk menghapus sejumlah besar file mungkin bisa menggunakan:

# postsuper -d - < filename-with-queue-ids

Biasanya memang aman melakukan ini pada saat sistem Postfix sedang berjalan. Bagaimanapun juga, ada juga kemungkinan kecil akan terhapusnya file queue yang salah. Skenario ini akan seperti ini:


Moving or restoring the Postfix queue

Sangatlah tidak aman untuk begitu saja menyalin file queue Postfix dari satu file sistem (atau backup) ke file sistem yang lain. Alasannya adalah nama file queue haruslah unik pada setiap direktori queue incoming, active and deferred Postfix. Jika 2 file queue mempunyai nama (dasar) yang sama, maka 1 dari file queue tersebut akan dihapus pada saat file tersebut dipindahkan antar direktori queue.

Postfix menamai sebuah file queue bedasar atas inode number dan berdasar atas bagian mikrodetik dari waktu pada hari itu. Oleh karena itu, jike sebuah queue file mempunyai nama yang berdasar pada inode number orang lain, maka kecil kemungkinan nama file tersebut akan bertabrakan dengan file queue yang lain.

Tulisan dibawah ini menggambarkan 2 prosedur yang berbeda untuk mengembalikan file queue dari mesin yang lain atau dari mesin backup.

Prosedur 1: Jika queue Postfix anda kosong, dan anda menjalankan Postfix release 20010525 atau yang lebih baru

Prosedur 2: Queue Postfix anda tidak kosong, atau anda menjalankan Posfix release 20010525 atau yang lebih lama


Undefined symbols: ___dn_expand, ___res_init etc.

Pertanyaan: Ketika saya membangun Postfix, saya mendapat pesan error sebagai berikut:

    ld: Undefined symbol
       ___dn_expand
       ___res_init
       ___res_search
    *** Error code 1

Jawaban: anda mencampurkan file include BIND versi 8 dengan file resolver library yang mempunyai versi yang berbeda.

Perbaikan: gunakanlah file include yang sesuai. Contoh:

    make makefiles CCARGS="-I/usr/include".

Undefined symbols: dbm_pagfno, dbm_dirfno etc.

Pertanyaan: Ketika saya membangun Postfix saya mendapatkan pesan error sebagai berikut:

    Undefined                       first referenced
     symbol                             in file
       dbm_pagfno                          ../lib/libutil.a(dict_dbm.o)
       dbm_dirfno                          ../lib/libutil.a(dict_dbm.o)

Jawaban: daripada menggunakan /usr/include/ndbm.h, anda telah membikin Postfix dengan beberapa file pihak ketiga yang tidak kompatibel, biasanya /usr/local/include/ndbm.h.

Perbaikan: hapuslah file include ndbm.h pihak ketiga.


Using third-party DB libraries

dbm lama milik UNIX databse mempunyai beberapa keterbatasan ketika anda mecoba untuk menyimpan sejumlah besar informasi. Dia akan rusak ketika jumlah dari hash collisions menjadi begitu besar sehingga masukan tidak cukup muat di dalam sebuah single disk block secara bersamaan. Database yang lebih baru db tidak menderita dengan keterbatasan ini. Sistem database ini adalah fitur standar pada 4.4BSD dan sistem linux.

Untuk membuat Postfix yang mendukung db pada sebuah sistem UNIX yang tidak mendukung db secara standar, anda bisa menggunakan kode source Berkeley DB dari www.sleepycat.com. Lihatlah pada file DB_README pada distribusi kode source Postfix tentang instruksi mengenai cara untuk membuat Postfix dengan Berkeley DB dari Sleepycat's.


IRIX problems translating IP address to string

Pertanyaan:
Ketika memasukkan IRIX 6.5.7m pada sebuah disk kosong dan tidak ada pilihan khusus atau perangkat lunak yang bermasalah; fungsi inet_ntoa() seakan mengembalikan INADDE_NONE (malformed request?) setiap kali memanggil fungsi tersebut.

Jawaban:
Adanya ketidakcocokan antara gcc dengan system library yang terbuat dengan cc dari SGI. Lihatnya pada http://freeware.sgi.com/shared/howto.html.

Jika anda harus menggunakan gcc, cara yang memungkinkan adalah menggunakan rutin inet_ntoa() dari kode source BIND pada http://www.isc.org/.


Compaq mail blackhole problem

Pada beberapa sistem konfigurasi Compaq Tru64 UNIX, Postfix akan menerima email dan kemudian tidak terjadi apa - apa. Email bahkan tidak muncul dengan perintah mailq.

Postfix membuat bit eksekusi pada file queue untuk mengindikasikan bahwa hal dia telah selesai menerima sebuah pesan. Selama sebuah file queue tidak mempunyai bit eksekusi, maka Postfix akan menghiraukannya seperti jika "email sedang dalam penerimaan".

Dengan mengaktifkan peningkatan keamanan, Compaq Tru64 UNIX mempunyai fitur yang melarang non-superuser yang mencoba menambahkan bit eksekusi pada sebuah file queue. Sayangnya, Postfix tidak pernah diinformasikan bahwa usaha tersebut gagal, dan email terlihat menghilang ke sebuah black hole.

Postfix bisa dimodifikasi untuk menggunakan bit yang lain dari bit eksekusi, namun hal tersebut mungkin akan sama gagalnya pada sistem yang lain. Kemungkinan lain adalah untuk mengijinkan non-superuser untuk menambahkan bit eksekusi pada file, dan untuk memasang file queue Postfix dengan pilihan nonexec atau yang setara.


Too many connections

Pesan ini dihasilkan oleh MYSQL server. Anda perlu untuk meningkatkan jumlah koneksi yang bisa ditangani. Hal yang perlu dipikirkan: virtual and canonical maps diakses oleh setiap proses smtpd and cleanup.

write queue file: No such file or directory

write queue file: Unknown error 4294967289

Reiserfs melaporkan wrong error code ketika sebuah pesan melebihi setting message_size_limit. Sebagai hasilnya, SMTP server Postfix melaporkan sebuah "queue file write error" kepada SMTP client, daripada melaporkan sebuah kondisi "file too large". Klien akan terus mengirim email yang sama terus menerus sampai email menjadi basi.
Up one level | Postfix FAQ