﻿# 將 Postfix 伺服器中所有的郵件移至另一台主機發送的方式

之前在管理 Postfix 時，因為設定 Smart Relay 時出錯，導致在伺服器中累積了許多郵件，所以信件都發不出去，但是修改設定後重新啟動 Postfix 卻都無法將郵件重新啟動，仔細研究後才發現原來這些放置在 Queue 裡面的信件都保有當初 Relay 的狀態，必須要重新排 Queue 才能套用新的 Relay 設定。

之前在 [如何刪除 Postfix 中所有還沒發送的郵件](/post/2008/03/24/How-to-delete-undelivered-email-in-Postfix) 文章中有提到過 [postsuper](http://www.postfix.org/postsuper.1.html) 指令，這個指令的 -r 參數就是用來執行重新排 Queue 用的。

如果你要套用其中一筆 Queue 中的郵件，可以先用 [mailq](http://www.postfix.org/postqueue.1.html) 或 [postqueue](http://www.postfix.org/postqueue.1.html) 指令查詢出或篩選出你要重新排 Queue 的郵件 ID，並使用以下指令重新排 Queue：

```
postsuper -r 7B8CE830BD
```

若要套用「所有」郵件，可以使用特殊的 ALL 關鍵字：

```
postsuper -r ALL
```

如果想將本機的郵件全部轉到另一台發信，就可以利用此技巧達成目的！
