2
也有一些是錯誤的:SMTP連接
$s = fsockopen($mailserver, 25);
echo '1 > '.fgets($s);
fwrite($s, 'HELO');
echo '2 > '.fgets($s);
fclose($s);
輸出:
1 > 220 mail.sogetthis.com ESMTP Postfix 2 >
也有一些是錯誤的:SMTP連接
$s = fsockopen($mailserver, 25);
echo '1 > '.fgets($s);
fwrite($s, 'HELO');
echo '2 > '.fgets($s);
fclose($s);
輸出:
1 > 220 mail.sogetthis.com ESMTP Postfix 2 >
的220
代碼意味着SMTP服務器已準備好接受命令。您正在發出一個HELO
命令,並且如果最後一條命令成功,則服務器應以250
響應,事實並非如此。嘗試在您的HELO
命令後面添加要連接的郵件服務器域。
fwrite($s, "HELO domain.com\r\n");
另外,您應該在所有命令之後包含\r\n
控制字符。注意命令周圍的雙引號。在這種情況下需要使用\r\n
,因爲雙引號會評估變量和控制字符。
+1這是缺少的\ r \ n,這使他的腳本掛起。 – webbiedave 2011-01-14 19:21:40
如果這不是一個學習練習,找一些庫代碼來使用。那裏有很多。 – derobert 2011-01-14 19:10:54