1
Я tring, чтобы отправить электронное письмо с PHP через telnet, но что-то не так.php smtp server
$telnet = array();
$telnet[0] = "telnet 10.0.50.6 25\r\n";
$telnet[1] = "HELO osiris.com\r\n";
$telnet[2] = "MAIL FROM:$replyTo\r\n";
$telnet[3] = "RCPT TO:$emailsTo\r\n";
$telnet[4] = "DATA\r\n";
$telnet[5] = "From:$headers<$replyTo> \r\n To:$emailsTo\r\n Subject:$emailSubject\r\n $body\r\n\r\n .\r\n";
@$fp = fsockopen('10.0.50.6', 25);
$count=0;
if (!$fp){
echo 'connection fail';
return false;
}else{
foreach ($telnet as $current) {
fwrite($fp, $current);
$smtpOutput=fgets($fp);
$g=substr($smtpOutput, 0, 3);
if (!(($g == "220") || ($g == "250") || ($g == "354")|| ($g == "500"))) {
echo 'connection 2 fail';
return false;
}else{
$count=$count+1;
echo $count.'<br>';
if ($count>5){
fclose($fp);
return true;
}
}
результат:
telnet 10.0.50.6 25
220 afcc-ex-il1.rsa-otms.com Microsoft ESMTP MAIL Service ready at Sat, 30 Mar 2013 19:01:12 +0000
220
1
HELO osiris.com
500 5.3.3 Unrecognized command
500
2
MAIL FROM:[email protected]
250 afcc-ex-il1.rsa-otms.com Hello [10.0.70.22]
250
3
RCPT TO:[email protected]
250 2.1.0 Sender OK
250
4
DATA
250 2.1.5 Recipient OK
250
5
From:cfir To:[email protected] Subject:test test
354 Start mail input; end with .
354
6
И что «что-то» является тем, что мы здесь для угадывания? – dbf
Hrm. Ну, если он вернет 500 на HELO, первое, что я попробую, это ELHO вместо этого, чтобы посмотреть, хочет ли он говорить только ESMTP. Но в сущности, на самом деле это выглядит так, что он достаточно доволен остальными вашими командами. Какие проблемы у вас на самом деле? –