最近需要用到 Mail Server,主要會使用 Postfix 寫一些跟 Mail 有關的,從 SMTP 開始吧!
Postfix
Postfix 是一種 MTA,Mail Server 的意思。一般你使用的郵件軟體,譬如 Outlook 或是 Thunderbird 叫做 MUA。
要收發信一定要有 MTA,也就是 Mail Server。Mail Server 是 24 小時不停工作的。MUA (你的收信軟體) 是可以用完就關掉的。
SMTP 基礎
SMTP 是電子郵件傳輸協定,你可以想成是 Mail Server 之間的溝通語言 (事實上也就是)。 當我們寫一封電子郵件給對方的時候,就是透過 SMTP 協定所傳遞的,所以若你發現郵件伺服器有問題,或是要測試郵件伺服器的時候,直接下 SMTP 指令是最好的,雖然這有點難,您需要透過 telnet 的方式來測試。
埠 (Port) 25 是電子郵件的標準通訊埠,一個 IP 位址有 65535 個埠可以使用。每一個埠都代表不同功能,例如埠 80 就是網頁伺服器,埠 110 是 pop3 服務,表示的方式就是 123.123.123.123:80 或是 123.123.123.123:110,埠 80 除了用數字之外,還可以用文字的方式表達:http = 80、POP3 = 110。所以在瀏覽器輸入 http 的時候,電腦就會連線埠 80 的服務,寄信的時候就會連線埠 25 的服務。
電子郵件使用到的埠有 25、465 與 587,465 與 587 同樣是 SMTP 協定,只是支援加密連線,465 (SSL) 與 587 (TLS)。
郵件伺服器
用來寫信的軟體叫做用戶端郵件軟體、常見的 Outlook、Thunderbird 這類型的,還有一種是網路郵局類型的,使用瀏覽器登入,或是手機 APP 軟體,這類型的都叫做郵件軟體,這些軟體都沒有寄信的功能,一定要透過郵件伺服器,就像你要寄實體的信件,你寫好了信,要拿到郵局去。郵局就像是郵件伺服器,要有郵件伺服器才會有人幫你投遞跟接收電子郵件。
SMTP 是什麼?可以吃嗎?
SMTP 就是寄送郵件的時候所使用的協定 (伺服器的語言),其實就是固定的幾個指令,如果你會這些指令的話,你也可以直接跟郵件伺服器溝通喔!
SMTP 的基礎指令
ehlo
連接郵件伺服器的時候的第一個指令,就像 Hello 一樣。
ehlo localhost
mail form:<name@yourdomain.com>
rcpt to:<hello@example.com>
data
Hello, this is a email to you!.
Thank you!
.
quit
就先這樣 XD,有空再來更新。