使用 gmail 從您的 php 發送郵件?
我在這裡閱讀了一些執行緒,有人設法使用 gmail 的 smtp 伺服器從 php 腳本發送消息。
所以如果 php 向 peter@hotmail.com 發送郵件,它看起來像這樣:
備選方案 1:
- php 告訴 sendmail(smtp 伺服器)發送消息
- sendmail 將郵件發送到 gmail 的 smtp 伺服器
- gmail 的 smtp 伺服器將消息發送到 hotmail 的 smtp 伺服器
所以現在我想知道,為什麼要使用 gmail 的 smtp 伺服器來發送郵件?將消息從sendmail 發送到hotmail 的smtp 伺服器不是更好嗎?
備選方案 2:
- php 告訴發送到本地 sendmail
- sendmail 發送到 hotmail 的 smtp 伺服器
備選方案 3:
- php 將消息發送到 gmail 的 smtp 伺服器
- gmail 的 smtp 伺服器發送到 hotmail 的 smtp 伺服器。
備選方案 4:
- php 將消息發送到 hotmail 的 smtp 伺服器。(為什麼這不起作用?為什麼有一個中間 smtp 伺服器(實際上就像一個純客戶端)發送到另一個 smtp 伺服器?
如果我錯了,請糾正我,但發送郵件所需要的不僅僅是兩個 smtp 伺服器、發送者和接收者(在本例中為 hotmail)之間的通信嗎?
我仍然看不到這裡的圖片以及發送郵件所發生的/需要的事情。我知道 MTA 和 MDA 是什麼。但是沒有人清楚地解釋這一點,因此人們可以了解這一切是如何運作的。
如果有人能闡明這個令人困惑的領域,那就太好了!
我猜它的設置不像你說的那樣。而是使用 PHP SMTP 庫而不使用 sendmail。為此,您將登錄資訊放入 gmail 帳戶的 php 中,它將直接與其通信。我想你可以讓 sendmail 使用 gmail 作為智能主機,以便它中繼電子郵件,但是 PHP 庫對我來說更有意義,除非你有很多不同的 PHP 應用程序。
如果不是這樣(不需要身份驗證),gmail 將執行所謂的開放中繼,垃圾郵件發送者將使用該中繼向人們發送大量垃圾郵件。
使用 gmail 而不是 sendmail 本身與 hotmail 通信的原因是因為您不必處理執行電子郵件伺服器的問題。他們將確保允許 gmail 使用者將郵件發送到諸如 hotmail 之類的地方,而不會將其標記為垃圾郵件。如果您自己執行發送郵件,您將不得不自己完成所有這些工作。
最後,它被稱為 SMTP 伺服器(簡單郵件傳輸協議)伺服器,因為它就是這樣做的,它在伺服器之間傳輸電子郵件(發送和接收,但不儲存)。這稱為 MTA(郵件傳輸代理)。儲存並讓電子郵件獲取電子郵件的是 MDA(類似於 fetchmail)。您可以將 MTA 視為郵局,將 MDA 視為您的郵箱。以下是電子郵件在維基百科上的工作方式的概述。