重点为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);