忍者ブログ
気になった内容を自分メモとして記述。 ある程度まとまったところで、Chips集として意味を持たせられれば幸いです。 まずは色々内容を増やしていきます。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

現在、実際に作成して学校のサーバで動作確認している
メール受信をキーに起動するphpプログラム
( password などは適時自分の環境に合わせて読み替えて下さい)

1. サーバの設定( /.forward )で、受信メールをphpへ送るように設定
http://chiraura.ria10.com/Entry/38/
2. 1通目の受信メールをDBに登録
3. 2通目の受信で、1通目との時刻の差分を返信内容に記載して返信(秒単位のみ、時間・分切り捨て)
4. DBから登録を削除
5. 2-4. を繰り返す

<?php
 require_once ("/home/user/pear/php/Mail/mimeDecode.php");

 mb_language("Japanese");
 mb_internal_encoding("SHIFT-JIS");

 #-- メールデータ取得
 $params['include_bodies'] = true;
 $params['decode_bodies']  = true;
 $params['decode_headers'] = true;
 $params['input'] = file_get_contents("php://stdin"); // 標準入力
 $params['crlf'] = "\r\n";
 $mail_data = Mail_mimeDecode::decode($params);

 #-- From フィールドの取得
 $FromAddress = $mail_data->headers['from'];

 #-- To フィールドの取得
 $ToAddress = $mail_data->headers['to'];

 #-- Subject フィールドの取得
 $Subject = $mail_data->headers['subject'];
 $Subject = mb_convert_encoding($Subject,"UTF-8","JIS");

 #-- 本文の取得
 $MailBody = $mail_data->body;
 $MailBody = mb_convert_encoding($MailBody,"UTF-8","JIS");

 $c_name = $FromAddress;
 $c_from = $FromAddress;
 $c_subj = $Subject;
 $c_mess = $MailBody;
 $c_time = date("Y-m-d H:i:s");

 // DB関連の処理
 $url = "localhost";
 $user = "root";
 $pass = "password";
 $db = "db_name";

 // MySQLへ接続
 $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");
 //DBを選択
 $sdb = mysql_select_db($db, $link) or die ("データベースの選択に失敗しました。");
 //クエリを送信する
 //メールアドレスをキーにselect
 $sql = "SELECT c_from, c_time FROM tb_mailtimer WHERE c_from = '$FromAddress'";
 $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

 //結果セットの行数を取得する
 $rows = mysql_num_rows($result);

 //見つかる→返信アドレスに設定後、削除、見つからない→insert
 if ($rows) {
    while($row = mysql_fetch_array($result))
     {
        $db_to = $row["c_from"];
        $db_time2 = $row["c_time"];
     }
    //結果保持用メモリを解放
     mysql_free_result($result);
    //削除
    $sql = "DELETE FROM tb_mailtimer WHERE c_from = '$FromAddress'";
    $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

    //時間の比較
    $datetime1 = strtotime($c_time);
    $datetime2 = strtotime($db_time2);
    $interval1 = ($datetime1 - $datetime2);
    $interval2 = date( 's秒', $interval1 );
    $message = $interval2;
   
    //メール処理
    if (!mb_send_mail($db_to, "自動返信", $message, "hoge@hoge.ne.jp")) {
        exit("メールの送信に失敗しました。");
    }
    //echo("メールを送信しました。");
    } else {
    $sql = "INSERT INTO `tb_mailtimer` ( `c_iden`, `c_name`, `c_from`, `c_subj`, `c_mess`, `c_time` ) VALUES ( '0000', '$FromAddress', '$FromAddress', '$Subject', '$MailBody', '$c_time' ) ";
    $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);
    }

 //MySQLへの接続を閉じる
 mysql_close($link) or die ("MySQL切断に失敗しました。");
?>

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新コメント
[07/07 Abuperut]
[06/26 Stanleymync]
[06/05 Apukibul]
[06/04 Buy Cigarettes Online]
[05/31 RobertPi]
最新トラックバック
プロフィール
HN:
daigumi
性別:
非公開
職業:
会社員(システムエンジニア)
自己紹介:
連絡先・メール
gaigumi[at]gmail.com
[at]を@に置き換えるか
以下のフォームからどうぞ
メールフォームはこちら
バーコード
ブログ内検索
最古記事
(11/25)
(11/25)
(11/25)
(11/25)
(11/25)
P R
カウンター
アクセス解析
アクセス解析

Copyright © [ Handbill BACK ] All rights reserved.
Special Template : 忍者ブログ de テンプレート
Special Thanks : 忍者ブログ
Commercial message : [PR]