<?PHP
//////////////////
// PUT_SMTP.PHP //
//////////////////
// ここに投げる必須項目
// $server
// $to
// $from
// $subject
// $body
$server='';
$put_smtp_flg="1";
$smtp='mail.hogehoge.com';
$subject="TESTmail";
$body="TESTmail";
$from = "hsmt@hogehoge.com";
//$to='has@zibaj.net';
$to='hsmt@zibaj.net';
//echo 'put_smtp_flg=>'.$put_smtp_flg.'<br>';
echo "smtp_server=>".$smtp."<br>";
echo "to=>".$to."<br>";
if($put_smtp_flg == "1"){
$server=$smtp;
// エンコード
$subject = mb_convert_encoding($subject,"JIS");
$body = mb_convert_encoding($body,"ISO-2022-JP");
$date = date('D, d M Y H:i:s: O');// 日付(この形式でないとメーラーに送信日時として解釈されない)
$sock = fsockopen($server,25); // メールサーバの25番ソケットを開いて
fputs($sock,"HELO $server\r\n"); // SMTPコマンド発行
$result = fgets($sock,128); // サーバからのレスポンスを取得
echo 'SMTPコマンド発行=>'.$result.'<br>';
fputs($sock,"MAIL FROM:<$from>\r\n");// FROMアドレス指定
$result = fgets($sock,128);
echo 'FROMアドレス指定=>'.$result.'<br>';
fputs($sock,"RCPT TO:<$to>\r\n"); // 宛先指定
$result = fgets($sock,128);
echo '宛先指定=>'.$result.'<br>';
fputs($sock,"DATA\r\n"); // DATAを送信後、ピリオドオンリーの行を送るまで本文。
$result = fgets($sock,128);
echo 'DATAを送信1=>'.$result.'<br>';
// Header 表示項目
fputs($sock,"FROM:<$from>\r\n"); // 送信元表示
fputs($sock,"TO:<$to>\r\n"); // 送信先表示
fputs($sock,"Date:<$date>\r\n"); // 日付表示
fputs($sock,"Subject:$subject\r\n");// Subjectヘッダ送信
fputs($sock,"\r\n$body\r\n"); // 本文送信** 改行の後が本文と見なされる
$result = fgets($sock,128);
echo 'DATAを送信2=>'.$result.'<br>';
fputs($sock,"\r\n.\r\n"); // ピリオドのみの行を送信。
$result = fgets($sock);
echo 'DATAを送信END=>'.$result.'<br>';
// echo $result."<br>\n";// 試験用表示
if(!ereg("^250",$result)){ // 成功すると250 OK~と返してくるので
echo "送信失敗<br>\n;"; // それが返ってこなかったら失敗。
}
echo '結果=>'.$result.'<br>';
fclose($sock); //ソケット閉じる
}
?>