• ベストアンサー

メール受信でMySQLのデータ追加/更新

chomakichiの回答

回答No.1

こんにちは。 JSPとサーブレットがどう絡んでくるのか、質問意味がよく理解できていませんが。。。 まず、どんな機能が必要なのかから考えてみましょう。 1.送信されたメールを受信する 2.メールの内容を解析する 3.MySQLを更新する の3つの機能が必要そうですよね。で、 1に必要なのは、「メールサーバからメールを受信するプログラム」と「メールを受け取るメールサーバ」、および「メール送信先のメールアカウント」くらいでしょうか。この「受信するプログラム」はJavaMailを使うと1から自分で作成するよりずっと楽になりそうですね。 そして2に必要なのは、、、Javaに標準で備わっているAPIでなんとかなりそうです。 3に必要なのは、「MySQL」、「MySQL用のJDBCドライバ」くらいでしょうか。 (尚、メール送信、受信やMySQLへの接続に関わるネットワークまわりの機器やその設定などは考慮していません。) この文書に出てくる言葉で検索してみると参考になるサイトが見つかると思います。

関連するQ&A

  • MYSQLにデータが送信されない

    こんにちは PHPもDBも初心者です。 現在、(1)トップページにある画像のurlをcheck.phpに送信して、(2)DB内のimg_urlと照合し、(3)照合されたイメージにpointを1追加した後、(4)またトップページに戻るというプログラムを組もうとしてるのですが、うまくいきません。 ソースはこれです↓ ---------------------------------------------------------------------------------- index.php <?php $image = array( "img/img1.jpg", "img/img2.jpg", "img/img3.jpg", "img/img4.jpg", "img/img5.jpg", "img/img6.jpg", ); $image = $image[rand(0, count($image)-1)]; echo '<a href="./check.php?url='.$image.'"><img src="'.$image.'" alt=""></a>'; ?> ---------------------------------------------------------------------------------- check.php ---------------------------------------------------------------------------------- <?php mysql_connect('****','****','****')or die(mysql_error()); mysql_select_db('******')or die(mysql_error()); mysql_query('SET NAMES UTF-8'); $url = htmlspecialchars($_GET['url']); if( !$url == ' ') { mysql_query('UPDATE image SET point=point+1 WHERE img_url = "$url"')or die(mysql_error()); header ('Location: ./index.php'); exit(); } else { echo('画像の情報が送信されていません。'); } ?> ---------------------------------------------------------------------------------- まだまだわからないことだらけで、稚拙な内容だとは思いますが よろしくお願いします。

    • ベストアンサー
    • PHP
  • JSPとMySQLの連携で・・・

    JSPとMySQLでwebアプリケーションを作ろうとしているのですが、 MySQLのテーブルにあらかじめレコードを入れておき、JSPでそれらレコードを 選択肢として表示させ、さらにそれらをラジオボタンなどで選べるようにし、 最後に送信ボタンを押すとそこで選んだ選択肢が次のJSPで表示される。 といったことをしたいのですが可能でしょうか?

  • 受信メールの件名に10文字程度追加できるメーラーは

    あとになって受信メールの件名を見ただけで内容が解るようなメモとして、件名の先頭部に10文字程度を追加できるようなメーラーはありませんか? たとえば添付画像のように件名に「部品RSKM3N」とか「抵抗100種」のように文字を追加したいのです。

  • マスタデータ更新

    こんにちは。 システム開発の基礎的なところがわからないので、教えていただきたく、投稿させていただきます。 システム開発をほとんどやったことがないので、言葉が変なところもあるかと思いますが、宜しくお願いいたします。 サーバー上に、AというSQLServerのDBがあります。 今までは、システム管理者のみがAccessからA.DBのリンクテーブルを使い、マスタデータの更新/追加/削除を行っていましたが、今後、リーダークラスの人もできるようにしたい!という要望があり、そのインターフェース部分を作成しています。 いろいろと考え、フロントエンド側にAccessでB.mdbを作成し、そこには、A.DBと同じテーブル構造の一時TBLを作成し、B.mdbを開いた時にA.DBから全データを取得することにしました。(取得するところまではできています) ここから、設定するための画面作成をしますが、最終的に、更新/追加/削除されたデータは、どのようにA.DBにUPすればいいのでしょうか? 考えた方法として (1)B.mdb内に、一時テーブルとは別に、更に同じ構造の変更用テーブルを作成。 設定画面から更新/追加/削除されたデータは変更用テーブルに保存し、全ての処理が終了したら、変更用テーブルにあるデータを1つづつ見て、A.DBへ更新/追加/削除をかける (2)一時テーブルのデータを直接更新/追加/削除し、全ての処理が終了したら、全テーブルのレコードを1件づつ比較し、A.DBへ更新/追加/削除をかける というくらいしか思いつかないのです。 その他に思ったのが、一時テーブルもしくは変更用のテーブルに、レコード毎に「更新/追加/削除」がわかるようにフラグを設けて、そのフラグに従ったSQL文を発行する というくらいです。。。 根本的に、マスタデータに対する更新/追加/削除のやり方が間違っていたりしますか? 誰も聞ける人がいないので、どうぞ宜しくお願いいたします!!!

  • PHP+MySQL データが無い時のみ追加したい

    PHP+MySQLで簡単なページカウンタを作っていますが、どうも正常に動いてくれません。 カウントを取りたいページに <IMG src="count.php?pagename=サンプルページ"> としてページネームを渡してあります。 count.phpの主要部分は //ページネームを取得(例:サンプルページ) $pagename = $_GET["pagename"]; とし、データベースに接続したあと // データ取り出し $sql = "SELECT name, count FROM shukei ORDER BY count;"; $rst = mysql_query($sql, $con); //データをループで読み込み while ($col = mysql_fetch_array($rst)) { $name = $col[name]; //渡されたページ名がDB内にあればカウント1増 if($name == $pagename){ $sql = "update shukei set count = count + 1 where name = '$name'"; } //渡されたページ名がDB内に無ければ新規追加 elseif($name != $pagename){ $sql = "INSERT INTO shukei(name,count) values(\"$pagename\",1)"; } } mysql_query($sql, $con); //接続解除 mysql_free_result($rst); $con = mysql_close($conn); としています、どんどん新規で追加されていってしまいます。 DB内にページ名が存在するならカウントアップをし、無い時はカウント1として新規追加をさせたいのですが…。 テーブル名はshukeiで id,name,count としております。 何か根本が間違っているのでしょうか。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • PHP
  • mysqlへのデータ追加について

    以下を実行すると”失敗しました”が表示されます。 $q1~$q5にはtest.html(FORM)からから受け取った(POST),2ビット文字を含む100文字未満が格納されています。(POSTの受け渡しテスト部分で受け渡しの成功は確認) それをmysqlのテーブルに格納したいのですが,そこがうまくいきません。 mysqlのdataテーブルにはq1~q5のフィールドがあり,すべてtext(200)です。本やネットで調べていますが原因がよくわかりません。 mysql_query($sql, $con)の書き方がおかしいのでしょうか。 どなたかご教授下さい。よろしくお願いします。 <?php $q1 = $_POST['q1']; $q2 = $_POST['q2']; $q3 = $_POST['q3']; $q4 = $_POST['q4']; $q5 = $_POST['q5']; /*POSTの確認 $body = $q1; $body .= $q2; $body .= $q3; $body .= $q4; $body .= $q5; print $body; */ require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASS); mysql_query("SET_NAMES 'sjis'"); $selectdb = mysql_select_db($DBNAME, $con); $sql = "insert into data (q1, q2, q3, q4, q5) values ($q1, $q2, $q3, $q4, $q5)"; $rst = mysql_query($sql, $con); if($rst){ print $q1."<br>"; print $q2."<br>"; print $q3."<br>"; print $q4."<br>"; print $q5."<br>"; print "上記の内容で登録しました。"; }else{ print "失敗しました。";} $con = mysql_close($con); ?>

    • ベストアンサー
    • PHP
  • perlのDBIからmysqlにINSERTINTOをやっても追加されない。help!!

    助けてください、お願いします。 phpadminで管理しているmysqlのDBへ、perlのDBIモジュールを使ってレコードの追加(INSERTINTO)をやっても、phpadminでDBをみてみると追加されていません。 DBIを組み込んだCGIを実行してみてもエラーはでないのですが、DBへの追加ができていません。 色々とやってみたのですが、どうしても追加ができません。考えられる要因があれば教えてください、お願いします。ソースは以下の通りです。 use DBI; $dbh=DBI->connect('DBI:mysql:データベース名:サーバホスト','ユーザ名','パスワード') or die $DBI::errstr; $sthandler = $dbh->prepare("INSERT INTO `table名` (`姓`, `名`, `メールアドレス`, `年齢`) VALUES ('名字', '名前', 'mailaddress', '0')"); $sthandler->execute; $sthandler->finish(); $dbh->commit; $dbh->rollback; $dbh->disconnect; 本当に困っています。どうかお助けください。

    • ベストアンサー
    • MySQL
  • サーブレットとMysqlについて

    JSP サーブレット Mysqlについて質問です。 私が今実現させたいことを簡単に説明します。 画面側にはtextboxがあり、このtextboxは追加ボタンによって、 どんどん追加されていきます。 サーブレット側はこのtextboxの全ての値をDBに書き込みたいです。 例えば、textboxが二つなら、一つ目のINSERTでDBのname列にtextbox一個目の値を書き込み、二つ目のINSERTでDBのname列にtextboxニ個目の値を書き込む。 ソースを書いてみたのですが、いろいろと違いがあると思いますので、ご教示をお願いします。 現在は下記ソースを実行してもDBは更新されません・・ もしかしたら、DBの設定がおかしいのでしょうか・・ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String[] name10 = request.getParameterValues("sonota"); for (int i = 0; i < name10.length; i++) { System.out.println(i + " " + name10[i]); name10[i] = new String(name10[i].getBytes("8859_1"), "UTF-8"); } Connection conn = null; CallableStatement cs = null; PreparedStatement stmt = null; ResultSet rs = null; String url = "jdbc:mysql://localhost/Sample_db"; String dbUser = "root"; String dbPass = "taratara"; try{ Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(url, dbUser, dbPass); String sql= "insert into Sample_db.Sample_table (name) values (name10[i]);"; stmt = conn.prepareStatement(sql); for (String n : name10) { stmt.setString(1, n); stmt.executeUpdate(); } int cnt = stmt.executeUpdate(); stmt.close(); }catch(Exception e){ //exception RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request, response); } } }

    • ベストアンサー
    • Java
  • MYSQLで異なるテーブル間のデータを参照できますか?

    MYSQLの超素人なので質問自体がおかしいかもしれませんが、あるテーブルのデータを他のテーブルにも利用したいのですが、これは可能でしょうか? もともとの発端は、mysqlのtable_1からデータを引っ張ってくるphpのプログラムがあるのですが、そのtable_1には私の欲しいデータがありませんでした。それでphpmyadmin(私はこれでしかDBをいじれません)を見てみると、table_2に欲しいデータがありました。 この時点で私は ・phpのプログラムをいじってtable_2からもデータを引っ張ってくるようにしたほうがいいのか それとも ・table_1にもう一行(これはなんていうのでしょう・・・ 呼び方が分かりません)追加してtable_2の欲しいデータを引っ張ってきた方がいいのか などと考えてみたのですが、いかんせん、phpもmysqlも全然分からないので、どうしたもんかと思っておりました。それでまだ簡単そうな2番目について質問してみました。が、何か根本的に考え方がおかしい部分などあると思うので、それもあわせて指摘していただけると幸いです。よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 画像を登録

    JSP/サーブレットからMySQLに繋いで、データを登録しようとしています。 JSPの画面でアップロードした画像を、MySQLのテーブルに登録したいのですが、可能でしょうか? ネットで色々調べているんですが、見つからず困ってます。。