2011-08-03 36 views
4

我正在嘗試使用telnet和smtp.mail.yahoo.com服務器發送電子郵件。當我嘗試使用我的yahoo郵件ID和密碼在服務器上對自己進行身份驗證時。服務器給了我錯誤;如何在AUTH PLAIN中使用用戶名和密碼?

501 malformed auth input (#5.5.4) 

我正在使用AUTH PLAIN機制。我不知道如何結合用戶名和密碼。然後將其轉換爲base64然後發送。

有人可以建議我如何結合AUTH PLAIN的用戶名和密碼嗎?由於

回答

10

隨着AUTH平原,憑證應根據本語法發送(從RFC 4616):

message = [authzid] UTF8NUL authcid UTF8NUL passwd 
authcid = 1*SAFE ; MUST accept up to 255 octets 
authzid = 1*SAFE ; MUST accept up to 255 octets 
passwd = 1*SAFE ; MUST accept up to 255 octets 
UTF8NUL = %x00 ; UTF-8 encoded NUL character 
[...] 

看來常見的有SMTP服務器空authzid,因此這應該計算工作AUTH PLAIN給你的留言:

echo -ne "\0username\0password"|base64 
+0

我的雅虎ID是「[email protected]」,密碼是「密碼」。我如何將它們結合起來。我遵循你的答案,但它沒有奏效。謝謝 –

+0

它是如何工作的?你從服務器得到了什麼錯誤信息?如果你解碼base64編碼的字符串(例如通過http://www.opinionatedgeek.com/dotnet/tools/base64decode/),它是否有意義? –

+0

我在這裏使用字符串「\ [email protected] \ 0pasword」在線編碼它[鏈接](http://www.tools4noobs.com/online_php_functions/base64_encode/)與out引號。然後我給這個字符串服務器,它說「501格式不正確的認證輸入(#5.5.4)」 –