ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/trunk/webapp/lib/util/mail_send.php @ 4235

Last change on this file since 4235 was 4235, checked in by ebihara, 13 years ago

#1129:以前の仕様のコードが入ってしまっていたのを修正

File size: 29.7 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7//----- 共通関数
8
9/**
10 * メール送信
11 */
12function t_send_email($address, $subject, $body, $is_receive_mail=true, $from=ADMIN_EMAIL)
13{
14    if (!$is_receive_mail || !db_common_is_mailaddress($address)) {
15        return false;
16    }
17
18    // 改行コード
19    $cr = "\x0D";
20    $lf = "\x0A";
21    $crlf = "\x0D\x0A";
22
23    // 設定値によりMTAに渡すヘッダの区切り記号を分ける
24    if (MAIL_HEADER_SEP === 'CRLF') {
25        $sep = $crlf;
26    } else {
27        $sep = $lf;
28    }
29
30    // header
31    $headers = "MIME-Version: 1.0" . $sep;
32    $headers .= "Content-Type: text/plain; charset=iso-2022-jp" . $sep;
33    $headers .= "From: $from";
34
35    // 半角カナを全角カナに変換
36    if (MAIL_HAN2ZEN) {
37        $subject = mb_convert_kana($subject, "KV");
38        $body = mb_convert_kana($body, "KV");
39    }
40
41    // subject (改行コードを含んではならない)
42    $subject = mb_convert_encoding($subject, "JIS");
43    $subject = str_replace(array($cr, $lf), "", $subject);
44    $subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
45
46    // body (LF)
47    if (MAIL_WRAP_WIDTH) {
48        $body = t_wordwrap($body, MAIL_WRAP_WIDTH);
49    }
50    $body = mb_convert_encoding($body, "JIS");
51    $body = str_replace($cr, $lf, str_replace($crlf, $lf, $body));
52
53    if (MAIL_SET_ENVFROM) {
54        if (MAIL_ENVFROM) {
55            $f = MAIL_ENVFROM;
56        } else {
57            $f = ADMIN_EMAIL;
58        }
59        $params = '-f' . escapeshellcmd($f);
60        return mail($address, $subject, $body, $headers, $params);
61    } else {
62        return mail($address, $subject, $body, $headers);
63    }
64}
65
66/**
67 * mailテンプレート内容をfetch
68 *
69 * @param string $tpl_name テンプレート名(/templates/mail 直下のファイル)
70 * @param array $params Smartyでassignされる連想配列
71 * @return string Smartyが出力したHTMLの文字列
72 */
73function fetch_mail_m_tpl($tpl_name, $params)
74{
75    $params["OPENPNE_URL"] = OPENPNE_URL;
76    $params["SNS_NAME"] = SNS_NAME;
77    $params["ADMIN_EMAIL"] = ADMIN_EMAIL;
78    $params["CATCH_COPY"] = CATCH_COPY;
79    $params["OPERATION_COMPANY"] = OPERATION_COMPANY;
80    $params["COPYRIGHT"] = COPYRIGHT;
81
82    // メールの場合はHTMLエスケープしない
83    $local_configs = $GLOBALS['SMARTY'];
84    $local_configs['default_modifiers'] = array();
85
86    $smarty = new OpenPNE_Smarty($local_configs);
87    $smarty->assign($params);
88    $smarty->assign('inc_signature', fetch_inc_signature($smarty));
89    $smarty->assign('WORD_FRIEND', WORD_FRIEND);
90    $smarty->assign('WORD_MY_FRIEND', WORD_MY_FRIEND);
91    $smarty->assign('WORD_FRIEND_HALF', WORD_FRIEND_HALF);
92    $smarty->assign('WORD_MY_FRIEND_HALF', WORD_MY_FRIEND_HALF);
93
94    $tpl_name = str_replace('.tpl', '', $tpl_name);
95    if (util_is_unused_mail($tpl_name)) {
96        return false;
97    }
98
99    if ($smarty->template_exists('db:' . $tpl_name)) {
100        $tpl = 'db:' . $tpl_name;
101        $cache_id = $compile_id = 'mail';
102    } else {
103        $place = '';
104        $path = sprintf('templates/mail/%s.tpl', $tpl_name);
105        $tpl = 'file:' . mail_ext_search($path, $place);
106        $cache_id = $compile_id = 'mail_'. $place;
107    }
108
109    $subject_and_body = $smarty->fetch($tpl, $cache_id, $compile_id);
110    return explode("\n", $subject_and_body, 2);
111}
112
113function fetch_inc_signature($smarty)
114{
115    $tpl_db = 'db:inc_signature';
116    if ($smarty->template_exists($tpl_db)) {
117        $tpl = $tpl_db;
118        $cache_id = $compile_id = 'mail';
119    } else {
120        $place = '';
121        $path = 'templates/mail/inc_signature.tpl';
122        $tpl = 'file:' . mail_ext_search($path, $place);
123        $cache_id = $compile_id = 'mail_'. $place;
124    }
125    return $smarty->fetch($tpl, $cache_id, $compile_id);
126}
127
128function mail_ext_search($path, &$place)
129{
130    $dft = OPENPNE_WEBAPP_DIR . '/' . $path;
131    $ext = OPENPNE_WEBAPP_EXT_DIR . '/' . $path;
132    $biz = OPENPNE_WEBAPP_BIZ_DIR . '/' . $path;
133
134    if (USE_EXT_DIR && is_readable($ext)) {
135        $place = 'ext';
136        return $ext;
137    } elseif (USE_BIZ_DIR && is_readable($biz)) {
138        $place = 'biz';
139        return $biz;
140    } elseif (is_readable($dft)) {
141        $place = 'dft';
142        return $dft;
143    }
144
145    return false;
146}
147
148function get_c_template_mail_source($tpl_name)
149{
150    $source = '';
151    if (!($source = db_get_c_template_source($tpl_name))) {
152        include_once 'PHP/Compat/Function/file_get_contents.php';
153
154        $place = '';
155        $tpl_file = $tpl_name . '.tpl';
156        $path = 'templates/mail/' . $tpl_file;
157        if ($tpl = mail_ext_search($path, $place)) {
158            $source = file_get_contents($tpl);
159        }
160    }
161    return $source;
162}
163
164function fetch_send_mail($address, $tpl_name, $params = array(), $force = true, $from = '')
165{
166    $tpl_name .= '.tpl';
167    if ($tpl = fetch_mail_m_tpl($tpl_name, $params)) {
168        list($subject, $body) = $tpl;
169        if ($from) {
170            t_send_email($address, $subject, $body, $force, $from);
171        } else {
172            t_send_email($address, $subject, $body, $force);
173        }
174        return true;
175    } else {
176        return false;
177    }
178}
179
180//-----
181
182//本登録完了メール 登録者へ
183function do_regist_prof_do_regist2_mail_send($c_member_id)
184{
185    $c_member = db_common_c_member4c_member_id($c_member_id, true);
186    $pc_address = $c_member['secure']['pc_address'];
187    $params = array(
188        "c_member" => $c_member,
189    );
190    return fetch_send_mail($pc_address, 'm_pc_invite_end', $params);
191}
192
193//招待メール
194function do_h_invite_insert_c_invite_mail_send($c_member_id_invite, $session, $message, $pc_address)
195{
196    $params = array(
197        "c_member" => db_common_c_member4c_member_id($c_member_id_invite),
198        "sid" => $session,
199        "invite_message"=> $message,
200    );
201    return fetch_send_mail($pc_address, 'm_pc_syoutai_mail', $params);
202}
203
204//パスワード再発行メール
205function do_password_query_mail_send($c_member_id, $pc_address, $new_password)
206{
207    $params = array(
208        "c_member"   => db_common_c_member4c_member_id($c_member_id),
209        "pc_address" => $pc_address,
210        "password"   => $new_password,
211    );
212    return fetch_send_mail($pc_address, 'm_pc_password_query', $params);
213}
214
215//パスワード再発行メール(携帯)
216function db_mail_send_m_ktai_password_query($c_member_id, $new_password)
217{
218    $c_member = db_common_c_member4c_member_id($c_member_id, true);
219    $ktai_address = $c_member['secure']['ktai_address'];
220
221    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true)));
222    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
223    $params = array(
224        'c_member'  => $c_member,
225        'password'  => $new_password,
226        'login_url' => $login_url,
227    );
228    return fetch_send_mail($ktai_address, 'm_ktai_password_query', $params);
229}
230
231//掲示板が更新されたときのお知らせメール送信(携帯メールアドレスへ)
232function send_bbs_info_mail($c_commu_topic_comment_id, $c_member_id)
233{
234    $comment = _db_common_c_commu_topic_comment4c_commu_topic_comment_id($c_commu_topic_comment_id);
235    $c_member = db_common_c_member4c_member_id_LIGHT($c_member_id);
236
237    $c_commu_id       = $comment['c_commu_id'];
238    $c_commu_topic_id = $comment['c_commu_topic_id'];
239    $topic_name       = $comment['topic_name'];
240    $commu_name       = $comment['commu_name'];
241    $body             = $comment['body'];
242    $image_filename1  = $comment['image_filename1'];
243    $image_filename2  = $comment['image_filename2'];
244    $image_filename3  = $comment['image_filename3'];
245    $nickname = $c_member['nickname'];
246    $p = array('target_c_commu_topic_id' => $c_commu_topic_id);
247    $url              = openpne_gen_url('ktai', 'page_c_bbs', $p);
248    $params = array(
249        "topic_name"      => $topic_name,
250        "commu_name"      => $commu_name,
251        "nickname"        => $nickname,
252        "url"        => $url,
253        "body"            => $body,
254        "image_filename1" => $image_filename1,
255        "image_filename2" => $image_filename2,
256        "image_filename3" => $image_filename3,
257    );
258
259    $tpl = fetch_mail_m_tpl("m_ktai_bbs_info", $params);
260    if (!$tpl) {
261        return false;
262    }
263    list($subject, $body) = $tpl;
264
265    $lst  = db_common_receive_ktai_address_list4c_commu_id($c_commu_id);
266    foreach ($lst as $target_c_member_id => $ktai_address) {
267        if (MAIL_ADDRESS_HASHED) {
268            $from = "t{$c_commu_topic_id}-".t_get_user_hash($target_c_member_id).'@'.MAIL_SERVER_DOMAIN;
269        } else {
270            $from = "t{$c_commu_topic_id}".'@'.MAIL_SERVER_DOMAIN;
271        }
272        $from = MAIL_ADDRESS_PREFIX . $from;
273        t_send_email($ktai_address, $subject, $body, true, $from);
274    }
275}
276
277
278//掲示板が更新されたときのお知らせメール送信(PCメールアドレスへ)
279function send_bbs_info_mail_pc($c_commu_topic_comment_id, $c_member_id)
280{
281    $comment = _db_common_c_commu_topic_comment4c_commu_topic_comment_id($c_commu_topic_comment_id);
282    $c_member = db_common_c_member4c_member_id_LIGHT($c_member_id);
283
284    $c_commu_id       = $comment['c_commu_id'];
285    $c_commu_topic_id = $comment['c_commu_topic_id'];
286    $topic_name       = $comment['topic_name'];
287    $commu_name       = $comment['commu_name'];
288    $body             = $comment['body'];
289    $nickname         = $c_member['nickname'];
290    $p = array('target_c_commu_topic_id' => $c_commu_topic_id);
291    $url              = openpne_gen_url('pc', 'page_c_topic_detail', $p);
292
293    $image_filename1       = $comment['image_filename1'];
294    $image_filename2       = $comment['image_filename2'];
295    $image_filename3       = $comment['image_filename3'];
296
297    $image = $image_filename1 || $image_filename2 || $image_filename3;
298    $params = array(
299        "topic_name" => $topic_name,
300        "commu_name" => $commu_name,
301        "nickname"   => $nickname,
302        "url"        => $url,
303        "body"       => $body,
304        "image_filename1" => $image_filename1,
305        "image_filename2" => $image_filename2,
306        "image_filename3" => $image_filename3,
307    );
308
309    $tpl = fetch_mail_m_tpl("m_pc_bbs_info", $params);
310    if (!$tpl) {
311        return false;
312    }
313    list($subject, $body) = $tpl;
314
315    $lst  = db_common_receive_pc_address_list4c_commu_id($c_commu_id);
316    foreach ($lst as $pc_address) {
317        t_send_email($pc_address, $subject, $body, true);
318    }
319}
320
321//デイリーニュース
322function do_common_send_daily_news()
323{
324    // 改行コード
325    $cr = "\x0D";
326    $lf = "\x0A";
327    $crlf = "\x0D\x0A";
328
329    // 設定値によりMTAに渡すヘッダの区切り記号を分ける
330    if (MAIL_HEADER_SEP === 'CRLF') {
331        $sep = $crlf;
332    } else {
333        $sep = $lf;
334    }
335
336    $list = do_common_c_member_list4daily_news();
337    $count_receive_daily_news = db_member_count_c_member_is_receive_daily_news();
338    $count_daily_news_day = count(explode(',', DAILY_NEWS_DAY));
339    $str_daily_news_day = str_replace(',', '・', DAILY_NEWS_DAY);
340    $send_2_flag = 0;
341    $day_arr = array('日','月','火','水','木','金','土');
342    $day = date('w');
343    if (strstr(DAILY_NEWS_DAY, $day_arr[$day])) $send_2_flag = 1;
344    $logstr = '【SNS名】' . SNS_NAME . $sep
345        . '【URL】' . OPENPNE_URL . $sep
346        . '【SNSメンバー総数】' . number_format(count(db_member_c_member_id_list4null())) . $sep
347        . '【デイリーニュース送信対象総数】' . $sep
348        . '毎回:' . number_format($count_receive_daily_news['every_day']) . $sep
349        . '週' . $count_daily_news_day . '回(' . $str_daily_news_day . '):' . number_format($count_receive_daily_news['daily_news_day']) . $sep
350        . '【配信日】' . date("Y/m/d") . '(' . $day_arr[$day] . ')' . $sep .$sep
351        . "c_member_id\t通し番号\tタイムスタンプ" . $sep;
352    print mb_convert_encoding($logstr, 'JIS');
353
354    $i = 1;
355    $date = date("Y. n. j");
356    $daily_news_head = p_common_c_siteadmin4target_pagename('daily_news_head');
357    $daily_news_foot = p_common_c_siteadmin4target_pagename('daily_news_foot');
358    foreach ($list as $key => $value) {
359        if ($value['is_receive_daily_news'] == 1 ||
360            ($value['is_receive_daily_news'] == 2 && $send_2_flag)) {
361
362            $c_member_id = $value['c_member_id'];
363            print $c_member_id."\t" . $i++ ."\t". date("Y-m-d H:i:s") . $sep;
364
365            $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
366            $pc_address = $c_member_secure['pc_address'];
367
368            $params = array(
369                'c_member' => db_common_c_member4c_member_id($c_member_id),
370                'date'     => $date,
371                'ashiato_num' => p_h_ashiato_c_ashiato_num4c_member_id($c_member_id),
372                'diary_friend_list' => p_h_home_c_diary_friend_list4c_member_id($c_member_id, 5),
373                'c_commu_topic_comment_list'
374                                    => p_h_home_c_commu_topic_comment_list4c_member_id($c_member_id, 5),
375                'daily_news_head' => $daily_news_head,
376                'daily_news_foot' => $daily_news_foot,
377            );
378            fetch_send_mail($pc_address, 'm_pc_daily_news', $params);
379        }
380    }
381}
382
383//誕生日メール
384function do_common_send_birthday_mail()
385{
386    $birth_list = do_common_c_member_list4birthday_mail();
387
388    foreach ($birth_list as $birth_member) {
389        $friend_list = do_common_c_friend_list4c_member_id($birth_member['c_member_id']);
390
391        foreach ($friend_list as $friend) {
392            if ($friend['is_receive_mail']) {
393
394                $c_member_secure = db_common_c_member_secure4c_member_id($friend['c_member_id']);
395                $pc_address = $c_member_secure['pc_address'];
396
397                $params = array(
398                    "birth_member" => $birth_member,
399                    "friend" => $friend,
400                );
401                fetch_send_mail($pc_address, 'm_pc_birthday_mail', $params);
402            }
403        }
404    }
405}
406
407//スケジュールメール
408function do_common_send_schedule_mail()
409{
410    $c_schedule_list = db_schedule_c_member_list4mail();
411
412    $send_list = array();
413    foreach ($c_schedule_list as $value) {
414        $c_member_id = $value['c_member_id'];
415        $send_list[$c_member_id][] = $value;
416    }
417
418    foreach ($send_list as $key => $value) {
419        $c_member_secure = db_common_c_member_secure4c_member_id($key);
420        $pc_address = $c_member_secure['pc_address'];
421
422        $params = array(
423            "c_member" => db_common_c_member4c_member_id_LIGHT($key),
424            "c_schedule_list" => $value,
425        );
426        fetch_send_mail($pc_address, 'm_pc_schedule_mail', $params);
427    }
428}
429
430//◆紹介文が編集されました!メール
431function do_f_intro_edit_update_c_friend_send_mail($c_member_id, $target_c_member_id)
432{
433    $c_member_to = db_common_c_member4c_member_id($target_c_member_id, true);
434    $pc_address = $c_member_to['secure']['pc_address'];
435    $is_receive_mail = $c_member_to['is_receive_mail'];
436
437    $params = array(
438        "c_member_to"   => db_common_c_member4c_member_id_LIGHT($target_c_member_id),
439        "c_member_from" => db_common_c_member4c_member_id_LIGHT($c_member_id),
440    );
441    return fetch_send_mail($pc_address, 'm_pc_friend_intro', $params, $is_receive_mail);
442}
443
444//コミュニティに参加したときのメール
445function do_inc_join_c_commu_send_mail($c_commu_id, $c_member_id_join)
446{
447    $c_commu = _db_c_commu4c_commu_id($c_commu_id);
448    $c_member_admin = db_common_c_member4c_member_id($c_commu['c_member_id_admin'], true);
449
450    $pc_address = $c_member_admin['secure']['pc_address'];
451    $is_receive_mail = ($c_member_admin['is_receive_mail'] && $c_commu['is_send_join_mail']);
452
453    $params = array(
454        'c_commu' => $c_commu,
455        'c_member_admin' => db_common_c_member4c_member_id_LIGHT($c_commu['c_member_id_admin']),
456        'c_member_join'  => db_common_c_member4c_member_id_LIGHT($c_member_id_join),
457    );
458    return fetch_send_mail($pc_address, 'm_pc_join_commu', $params, $is_receive_mail);
459}
460
461//◆友達リンク承認完了メール
462function do_h_confirm_list_insert_c_friend_mail_send($c_member_id_from, $u)
463{
464    $c_member_from = db_common_c_member4c_member_id($c_member_id_from, true);
465    $pc_address = $c_member_from['secure']['pc_address'];
466    $is_receive_mail = $c_member_from['is_receive_mail'];
467
468    $params = array(
469        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_from),
470        "c_member_from" => db_common_c_member4c_member_id($u),
471    );
472    return fetch_send_mail($pc_address, 'm_pc_syounin_friend', $params, $is_receive_mail);
473}
474
475//メールアドレス変更メール
476function do_h_config_1_mail_send($target_c_member_id, $session, $pc_address)
477{
478    $params = array(
479        "c_member" => db_common_c_member4c_member_id($target_c_member_id),
480        "sid"      => $session,
481    );
482    return fetch_send_mail($pc_address, 'm_pc_change_mail', $params);
483}
484
485//メールアドレス変更メール
486function do_h_regist_mail_mail_send($target_c_member_id, $session, $pc_address)
487{
488    $params = array(
489        "c_member" => db_common_c_member4c_member_id($target_c_member_id),
490        "sid"      => $session,
491    );
492    return fetch_send_mail($pc_address, 'm_pc_regist_mail', $params);
493}
494
495//あしあとお知らせメール
496function do_common_send_ashiato_mail($c_member_to, $c_member_from)
497{
498    $c_member_to = db_common_c_member4c_member_id($c_member_to, true);
499    $c_member_from = db_common_c_member4c_member_id($c_member_from);
500
501    $pc_address = $c_member_to['secure']['pc_address'];
502    $ktai_address = $c_member_to['secure']['ktai_address'];
503
504    $params = array(
505        'c_member_to'   => $c_member_to,
506        'c_member_from' => $c_member_from,
507    );
508
509    //pc
510    fetch_send_mail($pc_address, 'm_pc_ashiato', $params);
511
512    //ktai
513    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_to['c_member_id'], true)));
514    $params['login_url'] = openpne_gen_url('ktai', 'page_o_login', $p);
515    fetch_send_mail($ktai_address, 'm_ktai_ashiato', $params);
516}
517
518//◆メッセージ受信メール
519function do_common_send_message_mail_send($c_member_id_to, $c_member_id_from)
520{
521    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
522    $pc_address = $c_member_to['secure']['pc_address'];
523    $is_receive_mail = $c_member_to['is_receive_mail'];
524
525    $params = array(
526        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
527        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
528    );
529    return fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
530}
531
532//◆承認依頼メッセージ受信メール
533function do_common_send_message_syoudaku_mail_send($c_member_id_to, $c_member_id_from)
534{
535    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
536    $pc_address = $c_member_to['secure']['pc_address'];
537    $is_receive_mail = $c_member_to['is_receive_mail'];
538
539    $params = array(
540        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
541        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
542    );
543    return fetch_send_mail($pc_address, 'm_pc_message_syounin', $params, $is_receive_mail);
544}
545
546// ログインアドレス通知メール
547function do_insert_c_member_mail_send($c_member_id, $password, $ktai_address)
548{
549    $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
550    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true)));
551    $params['url'] = openpne_gen_url('ktai', 'page_o_login', $p);
552    return fetch_send_mail($ktai_address, 'm_ktai_login_regist_end', $params);
553}
554
555//招待されたときのメール(ktai)
556function h_invite_insert_c_invite_mail_send($session, $c_member_id_invite, $mail, $message)
557{
558    $params['SNS_NAME'] = SNS_NAME;
559    $p = array('ses' => $session);
560    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_pre', $p);
561    $params['c_member'] = db_common_c_member4c_member_id($c_member_id_invite);
562    $params['message'] = $message;
563    return fetch_send_mail($mail, 'm_ktai_regist_invite', $params);
564}
565
566//メールアドレスの変更および
567//PCで今まで使っていたメンバーが新たに携帯アドレスを登録したときに送られるメール
568function do_mail_sns_change_ktai_mail_send($c_member_id, $session, $ktai_address)
569{
570    $params['SNS_NAME'] = SNS_NAME;
571    $p = array('id' => $c_member_id, 'ses' => $session);
572    $params['url'] = openpne_gen_url('ktai', 'page_o_login2', $p);
573    return fetch_send_mail($ktai_address, 'm_ktai_change_ktai', $params);
574}
575
576//ログインアドレス通知メール
577function do_mail_sns_login_get_mail_send($c_member_id, $sender)
578{
579    $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
580    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true)));
581    $params['url'] = openpne_gen_url('ktai', 'page_o_login', $p);
582    return fetch_send_mail($sender, 'm_ktai_login_get', $params);
583}
584
585// コミュニティ紹介
586function do_common_send_message_syoukai_commu_mail_send($c_member_id_to, $c_member_id_from)
587{
588    //メール
589    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
590    $pc_address = $c_member_to['secure']['pc_address'];
591    $is_receive_mail = $c_member_to['is_receive_mail'];
592
593    $params = array(
594        "c_member_to"   =>db_common_c_member4c_member_id($c_member_id_to),
595        "c_member_from" =>db_common_c_member4c_member_id($c_member_id_from),
596    );
597    return fetch_send_mail($pc_address, 'm_pc_message_syoukai_commu', $params, $is_receive_mail);
598}
599
600// メンバー紹介
601function do_common_send_message_syoukai_member_mail_send($c_member_id_to, $c_member_id_from)
602{
603    //メール
604    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
605    $pc_address = $c_member_to['secure']['pc_address'];
606    $is_receive_mail = $c_member_to['is_receive_mail'];
607
608    $params = array(
609        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
610        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
611    );
612    return fetch_send_mail($pc_address, 'm_pc_message_syoukai_member', $params, $is_receive_mail);
613}
614
615// イベント紹介
616function do_common_send_message_event_invite_mail_send($c_member_id_to, $c_member_id_from)
617{
618    //メール
619    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
620    $pc_address = $c_member_to['secure']['pc_address'];
621    $is_receive_mail = $c_member_to['is_receive_mail'];
622
623    $params = array(
624        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
625        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
626    );
627    return fetch_send_mail($pc_address, 'm_pc_message_event_invite', $params, $is_receive_mail);
628}
629
630//イベントメッセージ
631function do_common_send_message_event_message_mail_send($c_member_id_to, $c_member_id_from)
632{
633    //メール
634    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
635    $pc_address = $c_member_to['secure']['pc_address'];
636    $is_receive_mail = $c_member_to['is_receive_mail'];
637
638    $params = array(
639        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
640        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
641    );
642    return fetch_send_mail($pc_address, 'm_pc_message_event_message', $params, $is_receive_mail);
643}
644
645function do_common_send_mail_regist_get($session, $sender, $aff_id)
646{
647    // メール送信
648    $p = array(
649        'ses' => $session,
650        'aff_id' => $aff_id,
651    );
652    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_pre', $p);
653    return fetch_send_mail($sender, 'm_ktai_regist_get', $params);
654}
655
656//退会完了メール(管理者宛)
657function do_common_send_mail_taikai4admin($c_member_id, $reason)
658{
659    $p_list = db_common_c_profile_list4null();
660    $c_profile_list = array();
661    foreach ($p_list as $key => $value) {
662         $c_profile_list[]=$p_list[$key];
663    }
664
665    $c_member = db_common_c_member4c_member_id($c_member_id, true, true, 'private');
666    $c_member['c_member_invite'] = db_common_c_member4c_member_id_LIGHT($c_member['c_member_id_invite']);
667    if (OPENPNE_USE_POINT_RANK) {
668        $c_member['point'] = db_point_get_point($c_member_id);
669        $c_member['rank'] = db_point_get_rank4point($c_member['point']);
670    }
671
672    $params = array(
673        "c_member" => $c_member,
674        "c_profile_list" => $c_profile_list,
675        "reason" => $reason,
676    );
677    return fetch_send_mail(ADMIN_EMAIL, 'm_admin_taikai', $params);
678}
679
680//退会完了メール(PC)
681function do_common_send_mail_taikai_end_pc($c_member_id)
682{
683    $c_member = db_common_c_member4c_member_id($c_member_id, true);
684    $pc_address = $c_member['secure']['pc_address'];
685    $params = array(
686        "c_member" => $c_member,
687    );
688    return fetch_send_mail($pc_address, 'm_pc_taikai_end', $params);
689}
690
691//退会完了メール(携帯)
692function do_common_send_mail_taikai_end_ktai($c_member_id)
693{
694    $c_member = db_common_c_member4c_member_id($c_member_id, true);
695    $ktai_address = $c_member['secure']['ktai_address'];
696    $params = array(
697        "c_member" => $c_member,
698    );
699    return fetch_send_mail($ktai_address, 'm_ktai_taikai_end', $params);
700}
701
702//◆メッセージ受信メール(携帯)
703function do_common_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
704{
705    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
706    $ktai_address = $c_member_to['secure']['ktai_address'];
707    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
708    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_to['c_member_id'], true)));
709    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
710
711    $params = array(
712        'c_member_to'   => db_common_c_member4c_member_id($c_member_id_to),
713        'c_member_from' => db_common_c_member4c_member_id($c_member_id_from),
714        'login_url' => $login_url,
715    );
716    return fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
717}
718
719function put_mail_queue($address, $subject, $body, $is_receive_mail=true, $from=ADMIN_EMAIL)
720{
721    if (!$is_receive_mail || !db_common_is_mailaddress($address)) {
722        return false;
723    }
724
725    // 改行コード
726    $cr = "\x0D";
727    $lf = "\x0A";
728    $crlf = "\x0D\x0A";
729
730    // header
731    $headers['MIME-Version'] = "1.0";
732    $headers['Content-Type'] = "text/plain; charset=iso-2022-jp";
733    $headers['From'] = $from;
734    $headers['To'] = $address;
735
736    // 半角カナを全角カナに変換
737    if (MAIL_HAN2ZEN) {
738        $subject = mb_convert_kana($subject, "KV");
739        $body = mb_convert_kana($body, "KV");
740    }
741
742    // subject (改行コードを含んではならない)
743    $subject = str_replace(array($cr, $lf), "", $subject);
744    $subject = mb_convert_encoding($subject, "JIS");
745    $headers['Subject'] = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
746
747    // body (LF)
748    if (MAIL_WRAP_WIDTH) {
749        $body = t_wordwrap($body, MAIL_WRAP_WIDTH);
750    }
751
752    $body = mb_convert_encoding($body, "JIS");
753    $body = str_replace($cr, $lf, str_replace($crlf, $lf, $body));
754
755    include_once 'Mail/Queue.php';
756
757    $db_opt = array(
758        "type" => "db",
759        "dsn" => $GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn'],
760        "mail_table" => "mail_queue",
761    );
762    $mail_opt = array(
763        "driver"=>"mail",
764    );
765    $mail_mime = new Mail_mime();
766    $mail_mime->setTXTBody($body);
767    $body = $mail_mime->get(array("text_charset"=>"ISO-2022-JP"));
768    $body = addslashes($body);
769    $headers = $mail_mime->headers($headers);
770
771    if (MAIL_SET_ENVFROM) {
772        if (MAIL_ENVFROM) {
773            $f = MAIL_ENVFROM;
774        } else {
775            $f = ADMIN_EMAIL;
776        }
777        $params = '-f' . escapeshellcmd($f);
778        $mail_opt['param']= $params;
779        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
780        return $mail_queue->put($from, $address, $headers, $body);
781    } else {
782        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
783        return $mail_queue->put($from, $address, $headers, $body);
784    }
785}
786
787// ランクアップしたメンバーにメール送信(PC/ktai)
788function send_mail_pcktai_rank_up($c_member_id, $before_rank, $after_rank)
789{
790    $c_member = db_member_c_member4c_member_id($c_member_id, true);
791
792    if (!empty($c_member['secure']['pc_address'])) {
793        // PCアドレスがある場合は、PCのみ送信
794        $to = $c_member['secure']['pc_address'];
795       
796        $params = array(
797            'c_member'    => $c_member,
798            'before_rank' => $before_rank,
799            'after_rank'  => $after_rank,
800        );
801        return fetch_send_mail($to, 'm_pc_rank_up', $params);
802    } else {
803        // PCアドレスがない場合は、携帯のみ送信
804        $to = $c_member['secure']['ktai_address'];
805        $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member['c_member_id'], true)));
806        $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
807       
808        $params = array(
809            'c_member'    => $c_member,
810            'before_rank' => $before_rank,
811            'after_rank'  => $after_rank,
812            'login_url'   => $login_url,
813        );
814        return fetch_send_mail($to, 'm_ktai_rank_up', $params);
815    }
816}
817
818// ランクアップしたら管理者にメール送信
819function send_mail_admin_rank_up($c_member_id, $before_rank, $after_rank)
820{
821    $c_member = db_member_c_member4c_member_id_LIGHT($c_member_id);
822
823    $params = array(
824        'c_member'    => $c_member,
825        'before_rank' => $before_rank,
826        'after_rank'  => $after_rank,
827        'now' => date('Y-m-d H:i:s'),
828    );
829    return fetch_send_mail(ADMIN_EMAIL, 'm_admin_rank_up', $params);
830}
831
832//携帯個体識別番号を登録する必要がある場合に送られるメール(新規登録用)
833function do_mail_sns_regist_ktai_id_mail_send_pre($c_member_pre_id, $session, $ktai_address)
834{
835    $params['SNS_NAME'] = SNS_NAME;
836    $p = array('pre_id' => $c_member_pre_id, 'ses' => $session);
837    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_ktai', $p);
838    return fetch_send_mail($ktai_address, 'm_ktai_regist_ktai_id', $params);
839}
840?>
Note: See TracBrowser for help on using the repository browser.