2014-03-25 53 views
0

我有一個使用SMTP命令進行郵件的較老的PHP系統。我們正在切換到Gmail,我需要進行身份驗證。我可以連接到服務器。不幸的是,我得到了一個530-5.5.1認證要求。瞭解更多」的消息時,我在我的PHP代碼發送MAIL FROM命令。SMTP MAIL FROM AUTH =連接到gmail的格式

if (fputs($this->Socket, "MAIL FROM: \"admin\" <[email protected]>\r\n")<0){ 

我找不到添加認證的一個明顯的例子。我在http://www.faqs.org/rfcs/rfc2554.html讀到我必須補充AUTH =我的MAIL FROM命令。我有麻煩訓釋放什麼在AUTH =

Examples: 
    C: MAIL FROM:<[email protected]> [email protected] 
    S: 250 OK 

你知道認證的格式?

回答

1

有幾種方法可以做到SMTP認證,但其中之一是使用SMTP AUTH LOGIN命令。transcrip t的會話將如下所示:

host: 220 banner_here 
client: EHLO StephaniePC 
host: 250-name.of.host hello [clientip], pleased to meet you 
host: 250-AUTH LOGIN PLAIN 
host: 250 OK 
client: AUTH LOGIN 
host: 334 VXNlcm5hbWU6 
client: am9lc21pdGg= 
host: 334 UGFzc3dvcmQ6 
client: bGV0bWVpbg0K 
host: 235 2.7.0 Authentication successful 
client: MAIL FROM: <[email protected]> 
host: 250 2.1.0 Ok 
client: RCPT TO: <[email protected]> 
host: 250 2.1.0 Ok 
client: DATA 
host: 354 End data with <CR><LF>.<CR><LF> 
.... 

上面看到的編碼字符串是base64編碼的。如果你有一個能夠記錄日誌的郵件客戶端,你可以嘗試通過gmail發送一條消息,並且會話的記錄應該看起來像上面的記錄。

僅供參考,您可能想要使用phpmailer,而不是自己編寫代碼來執行SMTP驗證。 phpmailer可以做SMTP認證,它非常輕巧易用。

+0

謝謝。這工作得很好。 – Mel

相關問題