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

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

Last change on this file since 276 was 276, checked in by ogawa, 14 years ago

remove extra spaces

File size: 24.3 KB
Line 
1<?php
2/**
3 * @copyright 2005-2006 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($c_member['secure']['ktai_address']));
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
247    $params = array(
248        "topic_name"      => $topic_name,
249        "commu_name"      => $commu_name,
250        "nickname"        => $nickname,
251        "body"            => $body,
252        "image_filename1" => $image_filename1,
253        "image_filename2" => $image_filename2,
254        "image_filename3" => $image_filename3,
255    );
256
257    $tpl = fetch_mail_m_tpl("m_ktai_bbs_info", $params);
258    if (!$tpl) {
259        return false;
260    }
261    list($subject, $body) = $tpl;
262
263    $lst  = db_common_receive_ktai_address_list4c_commu_id($c_commu_id);
264    foreach ($lst as $target_c_member_id => $ktai_address) {
265        if (MAIL_ADDRESS_HASHED) {
266            $from = "t{$c_commu_topic_id}-".t_get_user_hash($target_c_member_id).'@'.MAIL_SERVER_DOMAIN;
267        } else {
268            $from = "t{$c_commu_topic_id}".'@'.MAIL_SERVER_DOMAIN;
269        }
270        $from = MAIL_ADDRESS_PREFIX . $from;
271        t_send_email($ktai_address, $subject, $body, true, $from);
272    }
273}
274
275
276//掲示板が更新されたときのお知らせメール送信(PCメールアドレスへ)
277function send_bbs_info_mail_pc($c_commu_topic_comment_id, $c_member_id)
278{
279    $comment = _db_common_c_commu_topic_comment4c_commu_topic_comment_id($c_commu_topic_comment_id);
280    $c_member = db_common_c_member4c_member_id_LIGHT($c_member_id);
281
282    $c_commu_id       = $comment['c_commu_id'];
283    $c_commu_topic_id = $comment['c_commu_topic_id'];
284    $topic_name       = $comment['topic_name'];
285    $commu_name       = $comment['commu_name'];
286    $body             = $comment['body'];
287    $nickname = $c_member['nickname'];
288
289    $params = array(
290        "topic_name" => $topic_name,
291        "commu_name" => $commu_name,
292        "nickname"   => $nickname,
293        "body"       => $body,
294    );
295
296    $tpl = fetch_mail_m_tpl("m_pc_bbs_info", $params);
297    if (!$tpl) {
298        return false;
299    }
300    list($subject, $body) = $tpl;
301
302    $lst  = db_common_receive_pc_address_list4c_commu_id($c_commu_id);
303    foreach ($lst as $pc_address) {
304        t_send_email($pc_address, $subject, $body, true);
305    }
306}
307
308//デイリーニュース
309function do_common_send_daily_news()
310{
311    $list = do_common_c_member_list4daily_news();
312    $send_2_flag = 0;
313    $day_arr = array('日','月','火','水','木','金','土');
314    $day = date('w');
315    if (strstr(DAILY_NEWS_DAY, $day_arr[$day])) $send_2_flag = 1;
316
317    foreach ($list as $key => $value) {
318        if ($value['is_receive_daily_news'] == 1 ||
319            ($value['is_receive_daily_news'] == 2 && $send_2_flag)) {
320
321            $date = date("Y. n. j");
322            $c_member_id = $value['c_member_id'];
323            print "c_member_id=".$c_member_id."<br>\n";
324
325            $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
326            $pc_address = $c_member_secure['pc_address'];
327
328            $params = array(
329                'c_member' => db_common_c_member4c_member_id($c_member_id),
330                'date'     => $date,
331                'ashiato_num' => p_h_ashiato_c_ashiato_num4c_member_id($c_member_id),
332                'diary_friend_list' => p_h_home_c_diary_friend_list4c_member_id($c_member_id, 5),
333                'c_commu_topic_comment_list'
334                                    => p_h_home_c_commu_topic_comment_list4c_member_id($c_member_id, 5),
335                'daily_news_head' => p_common_c_siteadmin4target_pagename('daily_news_head'),
336                'daily_news_foot' => p_common_c_siteadmin4target_pagename('daily_news_foot'),
337            );
338            fetch_send_mail($pc_address, 'm_pc_daily_news', $params);
339        }
340    }
341}
342
343//誕生日メール
344function do_common_send_birthday_mail()
345{
346    $birth_list = do_common_c_member_list4birthday_mail();
347
348    foreach ($birth_list as $birth_member) {
349        $friend_list = do_common_c_friend_list4c_member_id($birth_member['c_member_id']);
350
351        foreach ($friend_list as $friend) {
352            if ($friend['is_receive_mail']) {
353
354                $c_member_secure = db_common_c_member_secure4c_member_id($friend['c_member_id']);
355                $pc_address = $c_member_secure['pc_address'];
356
357                $params = array(
358                    "birth_member" => $birth_member,
359                    "friend" => $friend,
360                );
361                fetch_send_mail($pc_address, 'm_pc_birthday_mail', $params);
362            }
363        }
364    }
365}
366
367//スケジュールメール
368function do_common_send_schedule_mail()
369{
370    $c_schedule_list = db_schedule_c_member_list4mail();
371
372    $send_list = array();
373    foreach ($c_schedule_list as $value) {
374        $c_member_id = $value['c_member_id'];
375        $send_list[$c_member_id][] = $value;
376    }
377
378    foreach ($send_list as $key => $value) {
379        $c_member_secure = db_common_c_member_secure4c_member_id($key);
380        $pc_address = $c_member_secure['pc_address'];
381
382        $params = array(
383            "c_member" => db_common_c_member4c_member_id_LIGHT($key),
384            "c_schedule_list" => $value,
385        );
386        fetch_send_mail($pc_address, 'm_pc_schedule_mail', $params);
387    }
388}
389
390//◆紹介文が編集されました!メール
391function do_f_intro_edit_update_c_friend_send_mail($c_member_id, $target_c_member_id)
392{
393    $c_member_to = db_common_c_member4c_member_id($target_c_member_id, true);
394    $pc_address = $c_member_to['secure']['pc_address'];
395    $is_receive_mail = $c_member_to['is_receive_mail'];
396
397    $params = array(
398        "c_member_to"   => db_common_c_member4c_member_id_LIGHT($target_c_member_id),
399        "c_member_from" => db_common_c_member4c_member_id_LIGHT($c_member_id),
400    );
401    return fetch_send_mail($pc_address, 'm_pc_friend_intro', $params, $is_receive_mail);
402}
403
404//コミュニティに参加したときのメール
405function do_inc_join_c_commu_send_mail($c_commu_id, $c_member_id_join)
406{
407    $c_commu = _db_c_commu4c_commu_id($c_commu_id);
408    $c_member_admin = db_common_c_member4c_member_id($c_commu['c_member_id_admin'], true);
409
410    $pc_address = $c_member_admin['secure']['pc_address'];
411    $is_receive_mail = ($c_member_admin['is_receive_mail'] && $c_commu['is_send_join_mail']);
412
413    $params = array(
414        'c_commu' => $c_commu,
415        'c_member_admin' => db_common_c_member4c_member_id_LIGHT($c_commu['c_member_id_admin']),
416        'c_member_join'  => db_common_c_member4c_member_id_LIGHT($c_member_id_join),
417    );
418    return fetch_send_mail($pc_address, 'm_pc_join_commu', $params, $is_receive_mail);
419}
420
421//◆友達リンク承認完了メール
422function do_h_confirm_list_insert_c_friend_mail_send($c_member_id_from, $u)
423{
424    $c_member_from = db_common_c_member4c_member_id($c_member_id_from, true);
425    $pc_address = $c_member_from['secure']['pc_address'];
426    $is_receive_mail = $c_member_from['is_receive_mail'];
427
428    $params = array(
429        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_from),
430        "c_member_from" => db_common_c_member4c_member_id($u),
431    );
432    return fetch_send_mail($pc_address, 'm_pc_syounin_friend', $params, $is_receive_mail);
433}
434
435//メールアドレス変更メール
436function do_h_config_1_mail_send($target_c_member_id, $session, $pc_address)
437{
438    $params = array(
439        "c_member" => db_common_c_member4c_member_id($target_c_member_id),
440        "sid"      => $session,
441    );
442    return fetch_send_mail($pc_address, 'm_pc_change_mail', $params);
443}
444
445//あしあとお知らせメール
446function do_common_send_ashiato_mail($c_member_to, $c_member_from)
447{
448    $c_member_to = db_common_c_member4c_member_id($c_member_to, true);
449    $c_member_from = db_common_c_member4c_member_id($c_member_from);
450
451    $pc_address = $c_member_to['secure']['pc_address'];
452    $ktai_address = $c_member_to['secure']['ktai_address'];
453
454    $params = array(
455        'c_member_to'   => $c_member_to,
456        'c_member_from' => $c_member_from,
457    );
458
459    //pc
460    fetch_send_mail($pc_address, 'm_pc_ashiato', $params);
461
462    //ktai
463    $p = array('kad' => t_encrypt($c_member_to['secure']['ktai_address']));
464    $params['login_url'] = openpne_gen_url('ktai', 'page_o_login', $p);
465    fetch_send_mail($ktai_address, 'm_ktai_ashiato', $params);
466}
467
468//◆メッセージ受信メール
469function do_common_send_message_mail_send($c_member_id_to, $c_member_id_from)
470{
471    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
472    $pc_address = $c_member_to['secure']['pc_address'];
473    $is_receive_mail = $c_member_to['is_receive_mail'];
474
475    $params = array(
476        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
477        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
478    );
479    return fetch_send_mail($pc_address, 'm_pc_message_zyushin', $params, $is_receive_mail);
480}
481
482//◆承認依頼メッセージ受信メール
483function do_common_send_message_syoudaku_mail_send($c_member_id_to, $c_member_id_from)
484{
485    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
486    $pc_address = $c_member_to['secure']['pc_address'];
487    $is_receive_mail = $c_member_to['is_receive_mail'];
488
489    $params = array(
490        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
491        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
492    );
493    return fetch_send_mail($pc_address, 'm_pc_message_syounin', $params, $is_receive_mail);
494}
495
496// ログインアドレス通知メール
497function do_insert_c_member_mail_send($c_member_id, $password, $ktai_address)
498{
499    $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
500    $p = array('kad' => t_encrypt($c_member_secure['ktai_address']));
501    $params['url'] = openpne_gen_url('ktai', 'page_o_login', $p);
502    return fetch_send_mail($ktai_address, 'm_ktai_login_regist_end', $params);
503}
504
505//招待されたときのメール(ktai)
506function h_invite_insert_c_invite_mail_send($session, $c_member_id_invite, $mail, $message)
507{
508    $params['SNS_NAME'] = SNS_NAME;
509    $p = array('ses' => $session);
510    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_pre', $p);
511    $params['c_member'] = db_common_c_member4c_member_id($c_member_id_invite);
512    $params['message'] = $message;
513    return fetch_send_mail($mail, 'm_ktai_regist_invite', $params);
514}
515
516//メールアドレスの変更および
517//PCで今まで使っていたユーザーが新たに携帯アドレスを登録したときに送られるメール
518function do_mail_sns_change_ktai_mail_send($c_member_id, $session, $ktai_address)
519{
520    $params['SNS_NAME'] = SNS_NAME;
521    $p = array('id' => $c_member_id, 'ses' => $session);
522    $params['url'] = openpne_gen_url('ktai', 'page_o_login2', $p);
523    return fetch_send_mail($ktai_address, 'm_ktai_change_ktai', $params);
524}
525
526//ログインアドレス通知メール
527function do_mail_sns_login_get_mail_send($c_member_id, $sender)
528{
529    $c_member_secure = db_common_c_member_secure4c_member_id($c_member_id);
530    $p = array('kad' => t_encrypt($c_member_secure['ktai_address']));
531    $params['url'] = openpne_gen_url('ktai', 'page_o_login', $p);
532    return fetch_send_mail($sender, 'm_ktai_login_get', $params);
533}
534
535// コミュニティ紹介
536function do_common_send_message_syoukai_commu_mail_send($c_member_id_to, $c_member_id_from)
537{
538    //メール
539    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
540    $pc_address = $c_member_to['secure']['pc_address'];
541    $is_receive_mail = $c_member_to['is_receive_mail'];
542
543    $params = array(
544        "c_member_to"   =>db_common_c_member4c_member_id($c_member_id_to),
545        "c_member_from" =>db_common_c_member4c_member_id($c_member_id_from),
546    );
547    return fetch_send_mail($pc_address, 'm_pc_message_syoukai_commu', $params, $is_receive_mail);
548}
549
550// メンバ紹介
551function do_common_send_message_syoukai_member_mail_send($c_member_id_to, $c_member_id_from)
552{
553    //メール
554    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
555    $pc_address = $c_member_to['secure']['pc_address'];
556    $is_receive_mail = $c_member_to['is_receive_mail'];
557
558    $params = array(
559        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
560        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
561    );
562    return fetch_send_mail($pc_address, 'm_pc_message_syoukai_member', $params, $is_receive_mail);
563}
564
565// イベント紹介
566function do_common_send_message_event_invite_mail_send($c_member_id_to, $c_member_id_from)
567{
568    //メール
569    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
570    $pc_address = $c_member_to['secure']['pc_address'];
571    $is_receive_mail = $c_member_to['is_receive_mail'];
572
573    $params = array(
574        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
575        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
576    );
577    return fetch_send_mail($pc_address, 'm_pc_message_event_invite', $params, $is_receive_mail);
578}
579
580//イベントメッセージ
581function do_common_send_message_event_message_mail_send($c_member_id_to, $c_member_id_from)
582{
583    //メール
584    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
585    $pc_address = $c_member_to['secure']['pc_address'];
586    $is_receive_mail = $c_member_to['is_receive_mail'];
587
588    $params = array(
589        "c_member_to"   => db_common_c_member4c_member_id($c_member_id_to),
590        "c_member_from" => db_common_c_member4c_member_id($c_member_id_from),
591    );
592    return fetch_send_mail($pc_address, 'm_pc_message_event_message', $params, $is_receive_mail);
593}
594
595function do_common_send_mail_regist_get($session, $sender)
596{
597    // メール送信
598    $p = array('ses' => $session);
599    $params['url'] = openpne_gen_url('ktai', 'page_o_regist_pre', $p);
600    return fetch_send_mail($sender, 'm_ktai_regist_get', $params);
601}
602
603//退会完了メール(PC)
604function do_common_send_mail_taikai_end_pc($c_member_id)
605{
606    $c_member = db_common_c_member4c_member_id($c_member_id, true);
607    $pc_address = $c_member['secure']['pc_address'];
608    $params = array(
609        "c_member" => $c_member,
610    );
611    return fetch_send_mail($pc_address, 'm_pc_taikai_end', $params);
612}
613
614//退会完了メール(携帯)
615function do_common_send_mail_taikai_end_ktai($c_member_id)
616{
617    $c_member = db_common_c_member4c_member_id($c_member_id, true);
618    $ktai_address = $c_member['secure']['ktai_address'];
619    $params = array(
620        "c_member" => $c_member,
621    );
622    return fetch_send_mail($ktai_address, 'm_ktai_taikai_end', $params);
623}
624
625//◆メッセージ受信メール(携帯)
626function do_common_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from)
627{
628    $c_member_to = db_common_c_member4c_member_id($c_member_id_to, true);
629    $ktai_address = $c_member_to['secure']['ktai_address'];
630    $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail'];
631    $p = array('kad' => t_encrypt($c_member_to['secure']['ktai_address']));
632    $login_url = openpne_gen_url('ktai', 'page_o_login', $p);
633
634    $params = array(
635        'c_member_to'   => db_common_c_member4c_member_id($c_member_id_to),
636        'c_member_from' => db_common_c_member4c_member_id($c_member_id_from),
637        'login_url' => $login_url,
638    );
639    return fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail);
640}
641
642function put_mail_queue($address, $subject, $body, $is_receive_mail=true, $from=ADMIN_EMAIL)
643{
644    if (!$is_receive_mail || !db_common_is_mailaddress($address)) {
645        return false;
646    }
647
648    // 改行コード
649    $cr = "\x0D";
650    $lf = "\x0A";
651    $crlf = "\x0D\x0A";
652
653    // header
654    $headers['MIME-Version'] = "1.0";
655    $headers['Content-Type'] = "text/plain; charset=iso-2022-jp";
656    $headers['From'] = $from;
657    $headers['To'] = $address;
658
659    // 半角カナを全角カナに変換
660    if (MAIL_HAN2ZEN) {
661        $subject = mb_convert_kana($subject, "KV");
662        $body = mb_convert_kana($body, "KV");
663    }
664
665    // subject (改行コードを含んではならない)
666    $subject = str_replace(array($cr, $lf), "", $subject);
667    $subject = mb_convert_encoding($subject, "JIS");
668    $headers['Subject'] = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
669
670    // body (LF)
671    if (MAIL_WRAP_WIDTH) {
672        $body = t_wordwrap($body, MAIL_WRAP_WIDTH);
673    }
674
675    $body = mb_convert_encoding($body, "JIS");
676    $body = str_replace($cr, $lf, str_replace($crlf, $lf, $body));
677
678    require_once 'Mail/Queue.php';
679
680    $db_opt = array(
681        "type"=>"db",
682        "dsn"=>$GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn'],
683        "mail_table"=>"mail_queue",
684    );
685    $mail_opt = array(
686        "driver"=>"mail",
687    );
688    $mail_mime = new Mail_mime();
689    $mail_mime->setTXTBody($body);
690    $body = $mail_mime->get(array("text_charset"=>"ISO-2022-JP"));
691    $body = addslashes($body);
692    $headers = $mail_mime->headers($headers);
693
694    if (MAIL_SET_ENVFROM) {
695        if (MAIL_ENVFROM) {
696            $f = MAIL_ENVFROM;
697        } else {
698            $f = ADMIN_EMAIL;
699        }
700        $params = '-f' . escapeshellcmd($f);
701        $mail_opt['param']= $params;
702        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
703        return $mail_queue->put($from, $address, $headers, $body);
704    } else {
705        $mail_queue  = new Mail_Queue($db_opt, $mail_opt);
706        return $mail_queue->put($from, $address, $headers, $body);
707    }
708}
709
710?>
Note: See TracBrowser for help on using the repository browser.