気になった内容を自分メモとして記述。
ある程度まとまったところで、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切断に失敗しました。");
?>
メール受信をキーに起動する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
この記事にコメントする
カレンダー
10 | 2024/11 | 12 |
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 |
カテゴリー
フリーエリア
最新コメント
[07/07 Abuperut]
[06/26 Stanleymync]
[06/05 Apukibul]
[06/04 Buy Cigarettes Online]
[05/31 RobertPi]
最新記事
(03/29)
(03/29)
(01/14)
(01/05)
(12/25)
最新トラックバック
プロフィール
HN:
daigumi
性別:
非公開
職業:
会社員(システムエンジニア)
自己紹介:
ブログ内検索
P R
カウンター
アクセス解析
アクセス解析