フォームメール送信ソースコード(SMTP)のサンプル

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

?>

コメントを残す