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

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

Last change on this file since 5568 was 5568, checked in by ebihara, 14 years ago

#2012:ログインIDとパスワードによるログインモードを追加

File size: 31.4 KB
Line 
1<?php
2/**
3 * @copyright 2005-2008 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    if (OPENPNE_AUTH_MODE == 'pneid') {
213        $params['login_id'] = db_member_username4c_member_id($c_member_id);
214    }
215    return fetch_send_mail($pc_address, 'm_pc_password_query', $params);
216}
217
218//パスワード再発行メール(携帯)
219function db_mail_send_m_ktai_password_query($c_member_id, $new_password)
220{
221    $c_member = db_common_c_member4c_member_id($c_member_id, true);
222    $ktai_address = $c_member['secure']['ktai_address'];
223
224    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true)));
225    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
226    $params = array(
227        'c_member'  => $c_member,
228        'password'  => $new_password,
229        'login_url' => $login_url,
230    );
231    if (OPENPNE_AUTH_MODE == 'pneid') {
232        $params['login_id'] = db_member_username4c_member_id($c_member_id);
233    }
234    return fetch_send_mail($ktai_address, 'm_ktai_password_query', $params);
235}
236
237//掲示板が更新されたときのお知らせメール送信(携帯メールアドレスへ)
238function send_bbs_info_mail($c_commu_topic_comment_id, $c_member_id)
239{
240    $comment = _db_common_c_commu_topic_comment4c_commu_topic_comment_id($c_commu_topic_comment_id);
241    $c_member = db_common_c_member4c_member_id_LIGHT($c_member_id);
242
243    $c_commu_id       = $comment['c_commu_id'];
244    $c_commu_topic_id = $comment['c_commu_topic_id'];
245    $topic_name       = $comment['topic_name'];
246    $commu_name       = $comment['commu_name'];
247    $body             = $comment['body'];
248    $image_filename1  = $comment['image_filename1'];
249    $image_filename2  = $comment['image_filename2'];
250    $image_filename3  = $comment['image_filename3'];
251    $nickname = $c_member['nickname'];
252    $p = array('target_c_commu_topic_id' => $c_commu_topic_id);
253    $url              = openpne_gen_url('ktai', 'page_c_bbs', $p);
254    $params = array(
255        "topic_name"      => $topic_name,
256        "commu_name"      => $commu_name,
257        "nickname"        => $nickname,
258        "url"        => $url,
259        "body"            => $body,
260        "image_filename1" => $image_filename1,
261        "image_filename2" => $image_filename2,
262        "image_filename3" => $image_filename3,
263    );
264
265    $tpl = fetch_mail_m_tpl("m_ktai_bbs_info", $params);
266    if (!$tpl) {
267        return false;
268    }
269    list($subject, $body) = $tpl;
270
271    $lst  = db_common_receive_ktai_address_list4c_commu_id($c_commu_id);
272    foreach ($lst as $target_c_member_id => $ktai_address) {
273        if (MAIL_ADDRESS_HASHED) {
274            $from = "t{$c_commu_topic_id}-".t_get_user_hash($target_c_member_id).'@'.MAIL_SERVER_DOMAIN;
275        } else {
276            $from = "t{$c_commu_topic_id}".'@'.MAIL_SERVER_DOMAIN;
277        }
278        $from = MAIL_ADDRESS_PREFIX . $from;
279        t_send_email($ktai_address, $subject, $body, true, $from);
280    }
281}
282
283
284//掲示板が更新されたときのお知らせメール送信(PCメールアドレスへ)
285function send_bbs_info_mail_pc($c_commu_topic_comment_id, $c_member_id)
286{
287    $comment = _db_common_c_commu_topic_comment4c_commu_topic_comment_id($c_commu_topic_comment_id);
288    $c_member = db_common_c_member4c_member_id_LIGHT($c_member_id);
289
290    $c_commu_id       = $comment['c_commu_id'];
291    $c_commu_topic_id = $comment['c_commu_topic_id'];
292    $topic_name       = $comment['topic_name'];
293    $commu_name       = $comment['commu_name'];
294    $body             = $comment['body'];
295    $nickname         = $c_member['nickname'];
296    $p = array('target_c_commu_topic_id' => $c_commu_topic_id);
297    $url              = openpne_gen_url('pc', 'page_c_topic_detail', $p);
298
299    $image_filename1       = $comment['image_filename1'];
300    $image_filename2       = $comment['image_filename2'];
301    $image_filename3       = $comment['image_filename3'];
302
303    $image = $image_filename1 || $image_filename2 || $image_filename3;
304    $params = array(
305        "topic_name" => $topic_name,
306        "commu_name" => $commu_name,
307        "nickname"   => $nickname,
308        "url"        => $url,
309        "body"       => $body,
310        "image_filename1" => $image_filename1,
311        "image_filename2" => $image_filename2,
312        "image_filename3" => $image_filename3,
313    );
314
315    $tpl = fetch_mail_m_tpl("m_pc_bbs_info", $params);
316    if (!$tpl) {
317        return false;
318    }
319    list($subject, $body) = $tpl;
320
321    $lst  = db_common_receive_pc_address_list4c_commu_id($c_commu_id);
322    foreach ($lst as $pc_address) {
323        t_send_email($pc_address, $subject, $body, true);
324    }
325}
326
327//デイリーニュース
328function do_common_send_daily_news()
329{
330    // 改行コード
331    $cr = "\x0D";
332    $lf = "\x0A";
333    $crlf = "\x0D\x0A";
334
335    // 設定値によりMTAに渡すヘッダの区切り記号を分ける
336    if (MAIL_HEADER_SEP === 'CRLF') {
337        $sep = $crlf;
338    } else {
339        $sep = $lf;
340    }
341
342    $list = do_common_c_member_list4daily_news();
343    $count_receive_daily_news = db_member_count_c_member_is_receive_daily_news();
344    $count_daily_news_day = count(explode(',', DAILY_NEWS_DAY));
345    $str_daily_news_day = str_replace(',', '・', DAILY_NEWS_DAY);
346    $send_2_flag = 0;
347    $day_arr = array('日','月','火','水','木','金','土');
348    $day = date('w');
349    if (strstr(DAILY_NEWS_DAY, $day_arr[$day])) $send_2_flag = 1;
350    $logstr = '【SNS名】' . SNS_NAME . $sep
351        . '【URL】' . OPENPNE_URL . $sep
352        . '【SNSメンバー総数】' . number_format(count(db_member_c_member_id_list4null())) . $sep
353        . '【デイリーニュース送信対象総数】' . $sep
354        . '毎回:' . number_format($count_receive_daily_news['every_day']) . $sep
355        . '週' . $count_daily_news_day . '回(' . $str_daily_news_day . '):' . number_format($count_receive_daily_news['daily_news_day']) . $sep
356        . '【配信日】' . date("Y/m/d") . '(' . $day_arr[$day] . ')' . $sep .$sep
357        . "c_member_id\t通し番号\tタイムスタンプ" . $sep;
358    print mb_convert_encoding($logstr, 'JIS');
359
360    $i = 1;
361    $date = date("Y. n. j");
362    $daily_news_head = p_common_c_siteadmin4target_pagename('daily_news_head');
363    $daily_news_foot = p_common_c_siteadmin4target_pagename('daily_news_foot');
364    foreach ($list as $key => $value) {
365        if ($value['is_receive_daily_news'] == 1 ||
366            ($value['is_receive_daily_news'] == 2 && $send_2_flag)) {
367
368            $c_member_id = $value['c_member_id'];
369            print $c_member_id."\t" . $i++ ."\t". date("Y-m-d H:i:s") . $sep;
370
371            $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
372            $pc_address = $c_member_secure['pc_address'];
373
374            $params = array(
375                'c_member' => db_common_c_member4c_member_id($c_member_id),
376                'date'     => $date,
377                'ashiato_num' => p_h_ashiato_c_ashiato_num4c_member_id($c_member_id),
378                'diary_friend_list' => p_h_home_c_diary_friend_list4c_member_id($c_member_id, 5),
379                'c_commu_topic_comment_list'
380                                    => p_h_home_c_commu_topic_comment_list4c_member_id($c_member_id, 5),
381                'daily_news_head' => $daily_news_head,
382                'daily_news_foot' => $daily_news_foot,
383            );
384            fetch_send_mail($pc_address, 'm_pc_daily_news', $params);
385        }
386    }
387}
388
389//誕生日メール
390function do_common_send_birthday_mail()
391{
392    $birth_list = do_common_c_member_list4birthday_mail();
393
394    foreach ($birth_list as $birth_member) {
395        $friend_list = do_common_c_friend_list4c_member_id($birth_member['c_member_id']);
396
397        foreach ($friend_list as $friend) {
398            if ($friend['is_receive_mail']) {
399
400                $c_member_secure = db_common_c_member_secure4c_member_id($friend['c_member_id']);
401                $pc_address = $c_member_secure['pc_address'];
402
403                $params = array(
404                    "birth_member" => $birth_member,
405                    "friend" => $friend,
406                );
407                fetch_send_mail($pc_address, 'm_pc_birthday_mail', $params);
408            }
409        }
410    }
411}
412
413//スケジュールメール
414function do_common_send_schedule_mail()
415{
416    $c_schedule_list = db_schedule_c_member_list4mail();
417
418    $send_list = array();
419    foreach ($c_schedule_list as $value) {
420        $c_member_id = $value['c_member_id'];
421        $send_list[$c_member_id][] = $value;
422    }
423
424    foreach ($send_list as $key => $value) {
425        $c_member_secure = db_common_c_member_secure4c_member_id($key);
426        $pc_address = $c_member_secure['pc_address'];
427
428        $params = array(
429            "c_member" => db_common_c_member4c_member_id_LIGHT($key),
430            "c_schedule_list" => $value,
431        );
432        fetch_send_mail($pc_address, 'm_pc_schedule_mail', $params);
433    }
434}
435
436//◆紹介文が編集されました!メール
437function do_f_intro_edit_update_c_friend_send_mail($c_member_id, $target_c_member_id)
438{
439    $c_member_to = db_common_c_member4c_member_id($target_c_member_id, true);
440    $pc_address = $c_member_to['secure']['pc_address'];
441    $is_receive_mail = $c_member_to['is_receive_mail'];
442
443    $params = array(
444        "c_member_to"   => db_common_c_member4c_member_id_LIGHT($target_c_member_id),
445        "c_member_from" => db_common_c_member4c_member_id_LIGHT($c_member_id),
446    );
447    return fetch_send_mail($pc_address, 'm_pc_friend_intro', $params, $is_receive_mail);
448}
449
450//コミュニティに参加したときのメール
451function do_inc_join_c_commu_send_mail($c_commu_id, $c_member_id_join)
452{
453    $c_commu = _db_c_commu4c_commu_id($c_commu_id);
454    $c_member_admin = db_common_c_member4c_member_id($c_commu['c_member_id_admin'], true);
455
456    $pc_address = $c_member_admin['secure']['pc_address'];
457    $is_receive_mail = ($c_member_admin['is_receive_mail'] && $c_commu['is_send_join_mail']);
458
459    $params = array(
460        'c_commu' => $c_commu,
461        'c_member_admin' => db_common_c_member4c_member_id_LIGHT($c_commu['c_member_id_admin']),
462        'c_member_join'  => db_common_c_member4c_member_id_LIGHT($c_member_id_join),
463    );
464    return fetch_send_mail($pc_address, 'm_pc_join_commu', $params, $is_receive_mail);
465}
466
467//◆友達リンク承認完了メール
468function do_h_confirm_list_insert_c_friend_mail_send($c_member_id_from, $u)
469{
470    $c_member_from = db_common_c_member4c_member_id($c_member_id_from, true);
471    $pc_address = $c_member_from['secure']['pc_address'];
472    $is_receive_mail = $c_member_from['is_receive_mail'];
473
474    $params = array(
475        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_from),
476        "c_member_from" => db_common_c_member4c_member_id($u),
477    );
478    return fetch_send_mail($pc_address, 'm_pc_syounin_friend', $params, $is_receive_mail);
479}
480
481//メールアドレス変更メール
482function do_h_config_1_mail_send($target_c_member_id, $session, $pc_address)
483{
484    $params = array(
485        "c_member" => db_common_c_member4c_member_id($target_c_member_id),
486        "sid"      => $session,
487    );
488    return fetch_send_mail($pc_address, 'm_pc_change_mail', $params);
489}
490
491//メールアドレス変更メール
492function do_h_regist_mail_mail_send($target_c_member_id, $session, $pc_address)
493{
494    $params = array(
495        "c_member" => db_common_c_member4c_member_id($target_c_member_id),
496        "sid"      => $session,
497    );
498    return fetch_send_mail($pc_address, 'm_pc_regist_mail', $params);
499}
500
501//あしあとお知らせメール
502function do_common_send_ashiato_mail($c_member_to, $c_member_from)
503{
504    $c_member_to = db_common_c_member4c_member_id($c_member_to, true);
505    $c_member_from = db_common_c_member4c_member_id($c_member_from);
506
507    $pc_address = $c_member_to['secure']['pc_address'];
508    $ktai_address = $c_member_to['secure']['ktai_address'];
509
510    $params = array(
511        'c_member_to'   => $c_member_to,
512        'c_member_from' => $c_member_from,
513    );
514
515    //pc
516    fetch_send_mail($pc_address, 'm_pc_ashiato', $params);
517
518    //ktai
519    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_to['c_member_id'], true)));
520    $params['login_url'] = openpne_gen_url('ktai', 'page_o_login', $p);
521    fetch_send_mail($ktai_address, 'm_ktai_ashiato', $params);
522}
523
524//◆メッセージ受信メール
525function do_common_send_message_mail_send($c_member_id_to, $c_member_id_from)
526{
527    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
528    $pc_address = $c_member_to['secure']['pc_address'];
529    $is_receive_mail = $c_member_to['is_receive_mail'];
530
531    $params = array(
532        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
533        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
534    );
535    return fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
536}
537
538//◆承認依頼メッセージ受信メール
539function do_common_send_message_syoudaku_mail_send($c_member_id_to, $c_member_id_from)
540{
541    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
542    $pc_address = $c_member_to['secure']['pc_address'];
543    $is_receive_mail = $c_member_to['is_receive_mail'];
544
545    $params = array(
546        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
547        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
548    );
549    return fetch_send_mail($pc_address, 'm_pc_message_syounin', $params, $is_receive_mail);
550}
551
552// ログインURL通知メール
553function do_insert_c_member_mail_send($c_member_id, $password, $ktai_address)
554{
555    $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
556    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true)));
557    $params['url'] = openpne_gen_url('ktai', 'page_o_login', $p);
558    return fetch_send_mail($ktai_address, 'm_ktai_login_regist_end', $params);
559}
560
561//招待されたときのメール(ktai)
562function h_invite_insert_c_invite_mail_send($session, $c_member_id_invite, $mail, $message)
563{
564    $params['SNS_NAME'] = SNS_NAME;
565    $p = array('ses' => $session);
566    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_pre', $p);
567    $params['c_member'] = db_common_c_member4c_member_id($c_member_id_invite);
568    $params['message'] = $message;
569    return fetch_send_mail($mail, 'm_ktai_regist_invite', $params);
570}
571
572//メールアドレスの変更および
573//PCで今まで使っていたメンバーが新たに携帯メールアドレスを登録したときに送られるメール
574function do_mail_sns_change_ktai_mail_send($c_member_id, $session, $ktai_address)
575{
576    $params['SNS_NAME'] = SNS_NAME;
577    $p = array('id' => $c_member_id, 'ses' => $session);
578    $params['url'] = openpne_gen_url('ktai', 'page_o_login2', $p);
579    return fetch_send_mail($ktai_address, 'm_ktai_change_ktai', $params);
580}
581
582//ログインURL通知メール
583function do_mail_sns_login_get_mail_send($c_member_id, $sender)
584{
585    $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
586    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true)));
587    $params['url'] = openpne_gen_url('ktai', 'page_o_login', $p);
588    return fetch_send_mail($sender, 'm_ktai_login_get', $params);
589}
590
591// コミュニティ紹介
592function do_common_send_message_syoukai_commu_mail_send($c_member_id_to, $c_member_id_from)
593{
594    //メール
595    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
596    $pc_address = $c_member_to['secure']['pc_address'];
597    $is_receive_mail = $c_member_to['is_receive_mail'];
598
599    $params = array(
600        "c_member_to"   =>db_common_c_member4c_member_id($c_member_id_to),
601        "c_member_from" =>db_common_c_member4c_member_id($c_member_id_from),
602    );
603    return fetch_send_mail($pc_address, 'm_pc_message_syoukai_commu', $params, $is_receive_mail);
604}
605
606// コミュニティ参加者全員にメール
607function do_common_send_message_commu_send_msg($c_member_id_to, $c_member_id_from, $c_commu_id)
608{
609    //メール
610    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
611    $c_commu = db_commu_c_commu4c_commu_id($c_commu_id);
612    $pc_address = $c_member_to['secure']['pc_address'];
613    $is_receive_mail = $c_member_to['is_receive_mail'];
614
615    $params = array(
616        'c_member_to'   => db_common_c_member4c_member_id($c_member_id_to),
617        'c_member_from' => db_common_c_member4c_member_id($c_member_id_from),
618        'c_commu'       => $c_commu,
619    );
620    return fetch_send_mail($pc_address, 'm_pc_message_commu_send_msg', $params, $is_receive_mail);
621}
622
623// メンバー紹介
624function do_common_send_message_syoukai_member_mail_send($c_member_id_to, $c_member_id_from)
625{
626    //メール
627    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
628    $pc_address = $c_member_to['secure']['pc_address'];
629    $is_receive_mail = $c_member_to['is_receive_mail'];
630
631    $params = array(
632        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
633        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
634    );
635    return fetch_send_mail($pc_address, 'm_pc_message_syoukai_member', $params, $is_receive_mail);
636}
637
638// イベント紹介
639function do_common_send_message_event_invite_mail_send($c_member_id_to, $c_member_id_from)
640{
641    //メール
642    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
643    $pc_address = $c_member_to['secure']['pc_address'];
644    $is_receive_mail = $c_member_to['is_receive_mail'];
645
646    $params = array(
647        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
648        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
649    );
650    return fetch_send_mail($pc_address, 'm_pc_message_event_invite', $params, $is_receive_mail);
651}
652
653//イベントメッセージ
654function do_common_send_message_event_message_mail_send($c_member_id_to, $c_member_id_from)
655{
656    //メール
657    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
658    $pc_address = $c_member_to['secure']['pc_address'];
659    $is_receive_mail = $c_member_to['is_receive_mail'];
660
661    $params = array(
662        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
663        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
664    );
665    return fetch_send_mail($pc_address, 'm_pc_message_event_message', $params, $is_receive_mail);
666}
667
668function do_common_send_mail_regist_get($session, $sender, $aff_id)
669{
670    // メール送信
671    $p = array(
672        'ses' => $session,
673        'aff_id' => $aff_id,
674    );
675    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_pre', $p);
676    return fetch_send_mail($sender, 'm_ktai_regist_get', $params);
677}
678
679//退会完了メール(管理者宛)
680function do_common_send_mail_taikai4admin($c_member_id, $reason)
681{
682    $p_list = db_common_c_profile_list4null();
683    $c_profile_list = array();
684    foreach ($p_list as $key => $value) {
685         $c_profile_list[]=$p_list[$key];
686    }
687
688    $c_member = db_common_c_member4c_member_id($c_member_id, true, true, 'private');
689    $c_member['c_member_invite'] = db_common_c_member4c_member_id_LIGHT($c_member['c_member_id_invite']);
690    if (OPENPNE_USE_POINT_RANK) {
691        $c_member['point'] = db_point_get_point($c_member_id);
692        $c_member['rank'] = db_point_get_rank4point($c_member['point']);
693    }
694
695    $params = array(
696        "c_member" => $c_member,
697        "c_profile_list" => $c_profile_list,
698        "reason" => $reason,
699    );
700    return fetch_send_mail(ADMIN_EMAIL, 'm_admin_taikai', $params);
701}
702
703//退会完了メール(PC)
704function do_common_send_mail_taikai_end_pc($c_member_id)
705{
706    $c_member = db_common_c_member4c_member_id($c_member_id, true);
707    $pc_address = $c_member['secure']['pc_address'];
708    $params = array(
709        "c_member" => $c_member,
710    );
711    return fetch_send_mail($pc_address, 'm_pc_taikai_end', $params);
712}
713
714//退会完了メール(携帯)
715function do_common_send_mail_taikai_end_ktai($c_member_id)
716{
717    $c_member = db_common_c_member4c_member_id($c_member_id, true);
718    $ktai_address = $c_member['secure']['ktai_address'];
719    $params = array(
720        "c_member" => $c_member,
721    );
722    return fetch_send_mail($ktai_address, 'm_ktai_taikai_end', $params);
723}
724
725//◆メッセージ受信メール(携帯)
726function do_common_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
727{
728    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
729    $ktai_address = $c_member_to['secure']['ktai_address'];
730    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
731    $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_to['c_member_id'], true)));
732    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
733
734    $params = array(
735        'c_member_to'   => db_common_c_member4c_member_id($c_member_id_to),
736        'c_member_from' => db_common_c_member4c_member_id($c_member_id_from),
737        'login_url' => $login_url,
738    );
739    return fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
740}
741
742function put_mail_queue($address, $subject, $body, $is_receive_mail=true, $from=ADMIN_EMAIL)
743{
744    if (!$is_receive_mail || !db_common_is_mailaddress($address)) {
745        return false;
746    }
747
748    // 改行コード
749    $cr = "\x0D";
750    $lf = "\x0A";
751    $crlf = "\x0D\x0A";
752
753    // header
754    $headers['MIME-Version'] = "1.0";
755    $headers['Content-Type'] = "text/plain; charset=iso-2022-jp";
756    $headers['From'] = $from;
757    $headers['To'] = $address;
758
759    // 半角カナを全角カナに変換
760    if (MAIL_HAN2ZEN) {
761        $subject = mb_convert_kana($subject, "KV");
762        $body = mb_convert_kana($body, "KV");
763    }
764
765    // subject (改行コードを含んではならない)
766    $subject = str_replace(array($cr, $lf), "", $subject);
767    $subject = mb_convert_encoding($subject, "JIS");
768    $headers['Subject'] = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
769
770    // body (LF)
771    if (MAIL_WRAP_WIDTH) {
772        $body = t_wordwrap($body, MAIL_WRAP_WIDTH);
773    }
774
775    $body = mb_convert_encoding($body, "JIS");
776    $body = str_replace($cr, $lf, str_replace($crlf, $lf, $body));
777
778    include_once 'Mail/Queue.php';
779
780    $db_opt = array(
781        "type" => "db",
782        "dsn" => $GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn'],
783        "mail_table" => "mail_queue",
784    );
785    $mail_opt = array(
786        "driver"=>"mail",
787    );
788    $mail_mime = new Mail_mime();
789    $mail_mime->setTXTBody($body);
790    $body = $mail_mime->get(array("text_charset"=>"ISO-2022-JP"));
791    $body = addslashes($body);
792    $headers = $mail_mime->headers($headers);
793
794    if (MAIL_SET_ENVFROM) {
795        if (MAIL_ENVFROM) {
796            $f = MAIL_ENVFROM;
797        } else {
798            $f = ADMIN_EMAIL;
799        }
800        $params = '-f' . escapeshellcmd($f);
801        $mail_opt['param']= $params;
802        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
803        return $mail_queue->put($from, $address, $headers, $body);
804    } else {
805        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
806        return $mail_queue->put($from, $address, $headers, $body);
807    }
808}
809
810// ランクアップしたメンバーにメール送信(PC/ktai)
811function send_mail_pcktai_rank_up($c_member_id, $before_rank, $after_rank)
812{
813    $c_member = db_member_c_member4c_member_id($c_member_id, true);
814
815    if (!empty($c_member['secure']['pc_address'])) {
816        // PCメールアドレスがある場合は、PCのみ送信
817        $to = $c_member['secure']['pc_address'];
818       
819        $params = array(
820            'c_member'    => $c_member,
821            'before_rank' => $before_rank,
822            'after_rank'  => $after_rank,
823        );
824        return fetch_send_mail($to, 'm_pc_rank_up', $params);
825    } else {
826        // PCメールアドレスがない場合は、携帯のみ送信
827        $to = $c_member['secure']['ktai_address'];
828        $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member['c_member_id'], true)));
829        $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
830       
831        $params = array(
832            'c_member'    => $c_member,
833            'before_rank' => $before_rank,
834            'after_rank'  => $after_rank,
835            'login_url'   => $login_url,
836        );
837        return fetch_send_mail($to, 'm_ktai_rank_up', $params);
838    }
839}
840
841// ランクアップしたら管理者にメール送信
842function send_mail_admin_rank_up($c_member_id, $before_rank, $after_rank)
843{
844    $c_member = db_member_c_member4c_member_id_LIGHT($c_member_id);
845
846    $params = array(
847        'c_member'    => $c_member,
848        'before_rank' => $before_rank,
849        'after_rank'  => $after_rank,
850        'now' => date('Y-m-d H:i:s'),
851    );
852    return fetch_send_mail(ADMIN_EMAIL, 'm_admin_rank_up', $params);
853}
854
855function do_common_send_mail_c_commu_admin_change($c_member_id_to, $c_commu_id)
856{
857    $c_member_to  = $c_member = db_member_c_member4c_member_id($c_member_id_to, true);
858    $c_commu = db_commu_c_commu4c_commu_id($c_commu_id);
859    $to_address = '';
860
861    $params = array(
862        'c_member_to' => $c_member_to,
863        'c_commu' => $c_commu,
864    );
865
866    if (!empty($c_member_to['secure']['pc_address'])) {
867        $to_address = $c_member_to['secure']['pc_address'];
868        return fetch_send_mail($to_address, 'm_pc_c_commu_admin_change', $params);
869    } else {
870        $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member['c_member_id'], true)));
871        $params['login_url'] = openpne_gen_url('ktai', 'page_o_login', $p);
872        $to_address = $c_member_to['secure']['ktai_address'];
873        return fetch_send_mail($to_address, 'm_ktai_c_commu_admin_change', $params);
874    }
875}
876
877//携帯個体識別番号を登録する必要がある場合に送られるメール(新規登録用)
878function do_mail_sns_regist_ktai_id_mail_send_pre($session, $ktai_address)
879{
880    $params['SNS_NAME'] = SNS_NAME;
881    $p = array('ses' => $session);
882    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_ktai', $p);
883    return fetch_send_mail($ktai_address, 'm_ktai_regist_ktai_id', $params);
884}
885?>
Note: See TracBrowser for help on using the repository browser.