大家好,我需要實現透過電子郵件向用戶發送提醒的服務,這應該是多線程計劃系統,這部分很好,但我需要安裝和配置smtp 伺服器以在伺服器上發送電子郵件,這是我不知道如何做什麼以及期待什麼我的工具將是一些 Linux(我猜是 ubuntu)切片上的燈組合。
答案1
安裝是非常特定於發行版的,因為有發行版推薦的安裝軟體的方法。如今,我很少建議任何人在任何 Linux 發行版上透過原始碼安裝 Postfix。
在 ubuntu 中,使用 apt-get。
$ sudo apt-get install postfix
這將在你的 Ubuntu 伺服器上安裝 postfix,之後的設定就交給你了。我的建議是將郵件透過管道傳輸到 sendmail 二進位檔案(通常位於 /usr/sbin/sendmail),如果 Postfix 系統關閉,它將把郵件保存在佇列中。如果您使用 SMTP 並連接到連接埠 25,如果您的郵件伺服器需要停機進行某些維護,您的應用程式將需要保留自己的郵件佇列,否則將面臨郵件無法送達的風險。
答案2
請按照以下說明安裝 PostfixPostfix.org
答案3
您也可以安裝 exim4,雖然設定起來比較複雜(由於 debian 的 hackery),但設定轉寄郵件要容易得多。只需 apt-get install exim4,然後,如有必要,dpkg-reconfigure exim4-config。
答案4
如果您以前曾經從原始程式碼建置/編譯過程式碼,那麼從原始程式碼中站起來,Postfix 並不難。
我們使用 mailx 向外發送電子郵件,並且 mailx 與 postfix SMTP 伺服器通訊作為實際的中繼點。
此外,一旦您啟動並運行了 Postfix 伺服器,其他外部伺服器就可以引用它來進行電子郵件中繼。
我們使用腳本化建置流程在 Linux 發行版 (Pozix Linux) 上建置 Postfix。
這是我們用來建構 Postfix make 檔案的命令:
製作 makefile 'CCARGS=-DHAS_PGSQL -DUSE_TLS -I/usr/local/pgsql-8.2.13/include -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/include/sasl -I/usr/local/UX0 L/usr/local/lib -L/usr/local/pgsql-8.2.13/lib -L/usr/local/BerkeleyDB/lib -lpq -lsasl2 -lz -lm -lssl -lcrypto -lpthread'
您可以根據您的需求進行調整。由於我們使用 PostgreSQL,因此我們有: -L/usr/local/pgsql-8.2.13/lib -lpq
如果您不需要 PostgreSQL 支持,您可以消除這些; SASL 和 TLS 也是如此。
執行該指令後,
make install(用於新安裝) make update(用於升級先前的版本)
為了讓 mailx 正常運作,我們通常有一個 CRON 作業以 root 身分呼叫腳本。
該腳本又呼叫 mailx。
MAILX 使用 .rc 檔案來讀取環境變量,由於我們以 root 使用者身分呼叫 mailx,我們需要將一個名為「.mailrc」的檔案放在 root 的主目錄中。
.mailrc 的內容如下所示:
放[電子郵件受保護] 設定 smtp=mail.mydomain.com 設定[電子郵件受保護] 設定 smtp-auth-password=警報密碼 設定 smtp-auth=登入
然後在我們的腳本中我們像這樣呼叫 mailx:
echo「測試訊息」|郵件x”[電子郵件受保護] [電子郵件受保護]" -s "電子郵件主旨" "電子郵件內文"
或者你可以這樣做:
mailx -s“主題”-a /路徑/到/某些/文件[電子郵件受保護]
其中 -a 允許您附加文件,而 test.msg 是用於讀入電子郵件正文的外部文件。
或者另一種方式,類似於第一個文件附件,是:
echo「訊息內文」| mailx -s“主題”-a /路徑/到/某些/文件[電子郵件受保護]