<?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); //ソケット閉じる } ?>