Saya mencoba ini r yang menjawab masalah ini. Tetapi pesan tampaknya tidak mudah dimodifikasi dalam versi yang saya miliki (2.11.0).
Misalnya tidak ada dir / var / spool / mqueue, tetapi, sebaliknya, / var / spool / postfix / ...
Saya ingin mengklarifikasi dua hal.
- Pertama, jawaban itu diterapkan pada sendmail TIDAK postfix.
- Kedua, manipulasi langsung-raw-queue-file tidak didukung sama sekali.
Jadi, Anda memiliki beberapa opsi di sini
1. parameter smtp_generic_maps
Jawaban ini terinspirasi oleh jawaban yang luar biasa ini . Itu akan menulis ulang alamat lama ke alamat baru secara otomatis. Anda dapat menentukan file ke peta alamat lama ke alamat baru.
/etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
/etc/postfix/generic:
[email protected] [email protected]
Jangan lupa untuk postmap /etc/postfix/generic
berlaripostfix reload
- Terbalik: Anda tidak perlu mengirim pesan lagi
- Kelemahan: Postfix akan menulis ulang alamat pengirim dan penerima yang cocok
[email protected]
.
2. sender_canonical_address
Untuk mengatasi kelemahan dari opsi pertama, Anda bisa menggunakan sender_canonical_maps
. Solusi ini berdasarkan saran penulis Postfix . Sama seperti opsi pertama, Anda dapat menentukan file ke peta alamat lama ke alamat baru.
/etc/postfix/main.cf:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
/etc/postfix/sender_canonical:
[email protected] [email protected]
Jalankan postmap /etc/postfix/sender_canonical
kemudian jalankan postfix reload
. Karena aliran antrian postfix, Anda harus kembali mengantri antrian yang terkena dampak dengan perintahpostsuper -r queueid
- Terbalik: Postfix tidak menulis ulang alamat penerima.
- Kelemahan: Anda harus membagikan semua pesan yang terpengaruh. Tetapi Anda dapat meminta semua ditangguhkan dengan perintah tunggal
postsuper -r ALL deferred
3. memanipulasi langsung antrian postfix
Ini adalah cara lama manual untuk memodifikasi antrian untuk pemrosesan lebih lanjut. Jawaban ini datang dari milis pengguna postfix
Pendeknya
Ekstrak antrian
# postsuper -h queueid
# postcat -qbh queueid > tempfile.eml
# vi tempfile.eml
Kirim ulang antrian dan hapus antrian lama
# sendmail -f $sender $recipient < tempfile.eml
# postsuper -d queueid
Untuk dokumentasi perintah di atas, lihat halaman ini
Catatan:
Solusi asli dari milis postfix-pengguna , gunakan postcat -q queueid >tempfile
untuk mengekstrak antrian. Perintah ini akan mengekstrak tajuk, badan, dan meta-informasi antrian. Seperti yang ditunjukkan Azendale di bawah ini , sendmail
akan menolak untuk mengirim email yang cacat ini karena meta-informasi.
Menggunakan -bh
parameter selain q
parameter akan membuat filter postcat output ke header dan tubuh saja, tidak termasuk meta-informasi. Manfaat sampingan dari hal ini adalah tempfile adalah dalam format yang paling dikenal oleh klien email sebagai format .eml, memungkinkan Anda untuk melihat pesan yang dihasilkan (diedit).
postcat -qbh queueid >tempfile
. (Keuntungan sampingan: dalam format .eml.) Jika saya hanya menggunakannya-q
, sepertinya tidak melakukan apa-apa ketika saya menjalankan sendmail. Versi postfix 2.8.4. Adakah yang bisa mengkonfirmasi ini? Jika demikian, mari kita edit jawaban ini.qbh
untuk membuatnya bekerja. Menambahkan penjelasan dalam jawaban yang diperbarui ... :)Lelang greate. Saya mempunyai masalah dengan mail server yang telah berjalan beberapa hari dengan konfigurasi yang buruk dan karena itu ada banyak antrian yang perlu dikirim ulang dengan penerima baru. Jadi saya membuat dua satu liner untuk mengulang semua antrian:
Yang pertama untuk menemukan semua antrian, menahannya, menyimpannya sebagai file .eml dan mengirimnya kembali:
Kedua untuk menghapus antrian:
Ingatlah untuk memeriksa bahwa tidak ada antrian baru yang tidak ditahan sebelum menjalankan kode terakhir ini. Lakukan itu dengan menerbitkan ini dan cari nomor antrian tanpa tanda '!' pada akhirnya:
On dapat dengan mudah memasukkan kedua baris itu menjadi satu, tetapi saya merasa memiliki kendali lebih besar dengan memeriksa apakah surat-surat itu benar-benar diterima sebelum menghapus antrian.
sumber