重点为one_mail函数。利用Mail_mimeDecode类从邮件中提取邮件头和邮件正文。 复制代码 代码如下: <?php header("content-type:text/html; charset=UTF-8"); /* * record kid words and insert into database * user by sending email to publication kid words * */ include "POP3.php"; include "email_class.php"; include "Mail_mimeDecode.php"; //include "include/compatible.php"; include "include/extend_common.php"; //include "../../htdocs/include/extend_common.php"; define("POST_FROM_EMAIL", 1); define("DATABASE_CONNECTION_ERROR", 2); //数据库连接失败错误 define("EMAIL_CONNECTION_ERROR", 3); //邮箱连接失败错误 define("ACCOUNT_ERROR", 4); //邮箱的账号错误 define("SIGN_EMAIL_ERROR", 5); //邮件标记删除错误 define("DELELET_ERROR", 6); //删除邮件错误 define("INSERT_ERROR", 7); //插入数据失败错误
class mail_data {
function mail_data() { include "config.php"; $mail_log = fopen("mail_log.txt", "a+"); $conn = @ mysql_connect($db_host, $db_user, $db_password); if ($conn) { mysql_select_db("t", $conn); mysql_query("set names utf8"); $pop3 = new Net_POP3(); //判断连接是否成功 if ($pop3->connect($host, 110)) { //判断登入是否成功 if ($pop3->login($user, $password) === true) { $list = $pop3->_cmdList(); $sum = $pop3->_cmdStat();
/** *at database search $mail user"s information *@access public *@param string $mail all email *@return array mail user"s information */ function uesr_data($mail) { $mails = implode("","", $mail); $sql = "SELECT a.mail,a.user_name,a.user_nickname,b.kid_id, b.kid_name,b.kid_avatar ,b.kid_birthday FROM `t_users` a, `t_users_kid` b WHERE a.mail in ("$mails") AND a.user_id=b.user_id"; $query = mysql_query($sql) or die(mysql_error()); $str1 = array ();
while ($arr = mysql_fetch_array($query)) { array_push($str1, $arr); } return $str1; } /* *insert $value into database *@access public *@param string $value kid information *@return void */ function insert_date($value) { $sql_insert = "INSERT INTO `t_posts`(kid_id,user_name,user_nickname,post_time,post_text,user_avatar,post_link_num,post_text_undo,post_from,add_time) VALUES ($value)"; $num = mysql_query($sql_insert) or die(mysql_error());
if ($num != 1) { $this->_error(INSERT_ERROR); } } /* *send email to $smtpemailto *@access public *@param string $mailtype mail_from type *@param string $smtpemailto mail_from *@param string $user_kid_name mail title *@return void */ function reply_email($mailtype, $smtpemailto, $user_kid_nickname) { require "config.php"; $mailsubject = "您暂时还没有" . $user_kid_nickname . "宝宝"; $mailsubject = "=?UTF-8?B?" . base64_encode($mailsubject) . "?="; $mailbody = "请先添加宝宝";
$age = $age % 10000; $months = floor($age / 100); if ($months > 12) $months -= 88; $days = $age % 100; if ($days > $cur_date % 100) { $days = $days - (100 - date("d", strtotime(date("Ym") . "01") - 24 * 3600)); } return array ( $years, $months, $days ); } /** *judge the $m message and the $x data *@access public *@param array $users mail information *@param array $str user information *@param int $m $users grade *@param int $x $str grade *@param string $post_text the mail text *@return string information */ function is_kid($users, $str, $m, $x, $post_text, $post_link_num, $post_text_undo) {
if ($users[$m]["from_mail"] == $str[$x]["mail"]) { //判断是否是from_mail的小孩
$kid_id = $str[$x]["kid_id"]; $user_name = $str[$x]["user_name"]; $user_nickname = $str[$x]["user_nickname"]; $kid_diff = $str[$x]["kid_birthday"]; $kid_name = $str[$x]["kid_name"]; $kid_diff = date("Ymd", $kid_diff); $kid_birthdy = $this->get_kid_age_info($kid_diff); //格式转换 for ($j = 0; $j < count($kid_birthdy); $j++) { if ($kid_birthdy[$j] >= 0 && $kid_birthdy[$j] < 10) { $kid_birthdy[$j] = "0" . "$kid_birthdy[$j]"; } } $post_time = $kid_birthdy[0] . $kid_birthdy[1] . $kid_birthdy[2]; $user_avatar = get_kid_avatar($user_name, $kid_id); $kid_avatar = $user_avatar; if ($users[$m]["kid_nickname"] == $kid_name) { $kid_id = mysql_real_escape_string("$kid_id"); $user_name = mysql_real_escape_string("$user_name"); $post_time = mysql_real_escape_string("$post_time"); $kid_avatar = mysql_real_escape_string("$kid_avatar"); $from = POST_FROM_EMAIL; $add_time = time(); $values = ""$kid_id","$user_name","$user_nickname","$post_time","$post_text","$kid_avatar","$post_link_num","$post_text_undo","$from","$add_time""; return $values; } } } /** *have the kid_num kid of users information *@access public *@param array $users the array() of users *@param int $m the m items of array *@param int $kid_num the kid_num kid *@return array kid information */ function user_kid($users, $m, $kid_num) { $m_mail = $users["$m"]["from_mail"]; $sql = "SELECT a.user_name,a.user_nickname,b.kid_id, b.kid_name,b.kid_avatar ,b.kid_birthday FROM `t_users` a, `t_users_kid` b WHERE a.mail="$m_mail" AND a.user_id=b.user_id ORDER BY b.kid_birthday ASC "; $query = mysql_query($sql) or die(mysql_error()); $str1 = array (); $kids = array (); $i = 0; while ($arr = mysql_fetch_array($query)) { $str1[$i] = $arr; $i = $i +1; } $kid_num = $kid_num -1; if ($kid_num > (count($str1) - 1)) { return $num = 0; } else { return $str1["$kid_num"]; }
} /** *get the kid_num kid information *@access public *@param array $users the array() of users *@param int $m the m items of array *@param int $kid_num the kid_num kid *@param string $post_text the message of mail *@param int $post_link_num count(link) of message body *@return array $values the kid information */ function kid_data($users, $m, $kid_num, $post_text, $post_link_num, $post_text_undo) { $use_kid = $this->user_kid($users, $m, $kid_num);