6 * @version $Revision: 1.3 $
\r
9 class ACSCommunityMail
\r
14 * @param $community_id
\r
15 * @param $acs_user_info_row ¥¢¥¯¥»¥¹¼Ô¾ðÊó
\r
18 function ACSCommunityMail ($community_id, $acs_user_info_row, $folder_id) {
\r
21 /****************************
\r
22 * ¥¹¥¿¥Æ¥£¥Ã¥¯¥Õ¥¡¥ó¥¯¥·¥ç¥ó
\r
23 ****************************/
\r
26 * ¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥Ð¤Ø¤Î¥á¡¼¥ëÁ÷¿®(°ì³çÇÛ¿®)
\r
28 * define('ACS_COMMUNITY_ML_SERVER') ¤Î£Ó£Í£Ô£Ð¥µ¡¼¥Ð¤ÇÁ÷¿®¤·¤Þ¤¹¡£
\r
29 * Á÷¿®¼Ô¤Ï¥³¥ß¥å¥Ë¥Æ¥£¤ËÀßÄꤵ¤ì¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤È¤Ê¤ê¤Þ¤¹¡£
\r
31 * ¥á¥Ã¥»¡¼¥¸¤ËÂФ·¤Æ°Ê²¼¤Î¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤òÃÖ´¹¤·¤Þ¤¹¡£
\r
32 * {USER_COMMUNITY_NAME}
\r
34 * {SYSTEM_SCRIPT_PATH}
\r
35 * {SYSTEM_MODULE_ACCESSOR}
\r
36 * {SYSTEM_ACTION_ACCESSOR}
\r
40 * @param string $community_id ¥³¥ß¥å¥Ë¥Æ¥£id
\r
41 * @param string $from_address Á÷¿®¼Ô¥¢¥É¥ì¥¹
\r
42 * (From:¤Î¤ßReply-to:¤Ï¥³¥ß¥å¥Ë¥Æ¥£ML¥¢¥É¥ì¥¹¤¬¼«Æ°ÉÕÍ¿¤µ¤ì¤ë)
\r
43 * @param string $subject ·ï̾
\r
44 * @param string $msg ¥á¥Ã¥»¡¼¥¸ËÜʸ
\r
45 * @param string $mmb_id_array Âоݥ桼¥¶¥³¥ß¥å¥Ë¥Æ¥£idÇÛÎó(̤»ØÄê»þ¤ÏÁ´°÷)
\r
46 * @return mixed true...Àµ¾ï/PearError ¥ª¥Ö¥¸¥§¥¯¥È...°Û¾ï
\r
48 static function send_community_mailing_list (
\r
49 $community_id,$from_address,$subject,$msg,$mmb_id_array='') {
\r
51 // ¥³¥ß¥å¥Ë¥Æ¥£ML¥¢¥É¥ì¥¹¤Î¼èÆÀ
\r
52 $ml_address_row = ACSCommunity::get_contents_row(
\r
53 $community_id, ACSMsg::get_mst('contents_type_master','D61'));
\r
55 // ¥³¥ß¥å¥Ë¥Æ¥£ML¥¹¥Æ¡¼¥¿¥¹¤Î¼èÆÀ
\r
56 $ml_status_row = ACSCommunity::get_contents_row(
\r
57 $community_id, ACSMsg::get_mst('contents_type_master','D62'));
\r
59 $ml_address = $ml_address_row['contents_value'];
\r
60 $ml_status = $ml_status_row['contents_value'];
\r
62 if ($ml_address == '' || $ml_status != 'ACTIVE') {
\r
66 // BBS¥·¥¹¥Æ¥à¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î¼èÆÀ
\r
67 $bbs_system_mailaddr = ACSSystemConfig::get_keyword_value(
\r
68 ACSMsg::get_mst('system_config_group','D03'),
\r
69 'COMMUNITY_ML_MAIL_ADDR');
\r
71 // ¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥ÐÁ´°÷¤Î¾ðÊó¤ò¼èÆÀ
\r
72 $mmb_info_rows =& ACSCommunity::get_community_member_mail_address_row_array(
\r
75 // $mmb_id_array ¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹²½
\r
76 $mmb_array = array();
\r
77 if (is_array($mmb_id_array)) {
\r
78 foreach ($mmb_id_array as $mmb_id) {
\r
79 $mmb_array[$mmb_id] = TRUE;
\r
85 foreach ($mmb_info_rows as $mmb_info) {
\r
86 if ($mmb_id_array == '' || $mmb_array[$mmb_info['user_community_id']]) {
\r
87 $bcc .= $bcc == '' ? '' : ',';
\r
88 $bcc .= $mmb_info['mail_address'];
\r
92 // ¥·¥¹¥Æ¥à´ØÏ¢¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤ÎÃÖ´¹
\r
93 $msg = ACSCommunityMail::get_community_tag_replace($community_id, $msg);
\r
96 return ACSLib::send_mail(
\r
98 $bcc, // Repicients¤Ë¤ÏbccÁ÷¿®¥æ¡¼¥¶¤Î¤ß»ØÄê
\r
103 'Sender' => $bbs_system_mailaddr,
\r
105 'Return-Path' => $ml_address,
\r
106 'Reply-to' => $ml_address,
\r
107 // ¸«¤»¤«¤±¤ÎTo:¤Ë¤ÏML¥¢¥É¥ì¥¹¤òÀßÄê
\r
108 'To' => $ml_address));
\r
112 * ¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥Ð¤Ø¤Î¥á¡¼¥ëÁ÷¿®(¸ÄÊÌÇÛ¿®)
\r
114 * ¢¨³Æ¥æ¡¼¥¶¤Î¸À¸ìÀßÄê¤Ë½¾¤Ã¤Æ¥¿¥°¤ò¥ê¥×¥ì¡¼¥¹¤·¤Þ¤¹¡£
\r
115 * ¢¨¥·¥¹¥Æ¥àÀßÄê¤Î£Ó£Í£Ô£Ð¤ÇÁ÷¿®¤·¤Þ¤¹¡£
\r
116 * ¥á¥Ã¥»¡¼¥¸¤ËÂФ·¤Æ°Ê²¼¤Î¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤òÃÖ´¹¤·¤Þ¤¹¡£
\r
117 * {USER_COMMUNITY_NAME}
\r
118 * {SYSTEM_BASE_URL}
\r
119 * {SYSTEM_SCRIPT_PATH}
\r
120 * {SYSTEM_MODULE_ACCESSOR}
\r
121 * {SYSTEM_ACTION_ACCESSOR}
\r
125 * @param string $community_id ¥³¥ß¥å¥Ë¥Æ¥£id
\r
126 * @param string $from Á÷¿®¼Ô
\r
127 * @param mixed $subject ÇÛÎó¤Î¾ì¹ç¡§·ï̾(array([lang] => [·ï̾]))
\r
128 * ʸ»úÎó¤Î¾ì¹ç¡¢Á´¤Æ¤Î¸À¸ì¤ÇƱ°ì¤Î·ï̾
\r
129 * @param mixed $msg ÇÛÎó¤Î¾ì¹ç¡§¥á¥Ã¥»¡¼¥¸ËÜʸ(array([lang] => [ËÜʸ]))
\r
130 * ʸ»úÎó¤Î¾ì¹ç¡¢Á´¤Æ¤Î¸À¸ì¤ÇƱ°ì¤Î¥á¥Ã¥»¡¼¥¸ËÜʸ
\r
131 * @param string $mmb_id_array Âоݥ桼¥¶¥³¥ß¥å¥Ë¥Æ¥£idÇÛÎó(̤»ØÄê»þ¤ÏÁ´°÷)
\r
132 * @return mixed true...Àµ¾ï/PearError ¥ª¥Ö¥¸¥§¥¯¥È...°Û¾ï
\r
134 static function send_community_mail ($community_id,$from,$subject,$msg,$mmb_id_array='') {
\r
136 // ¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥ÐÁ´°÷¤Î¾ðÊó¤ò¼èÆÀ
\r
137 $mmb_info_rows =& ACSCommunity::get_community_member_mail_address_row_array(
\r
140 // ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£id¤ò»ÈÍѤ·¤¿ÇÛÎó¤òÀ¸À®
\r
141 $mmb_info_array = array();
\r
142 $is_all = $mmb_id_array == '' ? TRUE : FALSE;
\r
143 foreach ($mmb_info_rows as $mmb_info) {
\r
144 $mmb_info_array[$mmb_info['user_community_id']] = $mmb_info;
\r
146 $mmb_id_array[] = $mmb_info['user_community_id'];
\r
150 // ¸À¸ì¼ïÎàÊ̤˥·¥¹¥Æ¥à´ØÏ¢¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤ÎÃÖ´¹
\r
151 $msg_lang = array();
\r
152 $lang_list =& ACSMsg::get_lang_list_array();
\r
153 foreach ($lang_list as $lang => $lang_disp) {
\r
154 $msg_lang[$lang] = ACSCommunityMail::get_community_tag_replace(
\r
155 $community_id, (is_array($msg) ? $msg[$lang] : $msg));
\r
158 // Âоݥ桼¥¶¤Ë¥á¡¼¥ë¤òÁ÷¿®
\r
159 if (is_array($mmb_id_array)) {
\r
161 foreach ($mmb_id_array as $mmb_id) {
\r
163 $mmb_info =& $mmb_info_array[$mmb_id];
\r
165 $lang = $mmb_info['mail_lang'] == '' ?
\r
166 ACS_DEFAULT_LANG : $mmb_info['mail_lang'];
\r
168 $mmb_msg = $msg_lang[$lang];
\r
170 $mmb_subject = is_array($subject) ? $subject[$lang] : $subject;
\r
172 // ̾Á°¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤ÎÃÖ´¹
\r
173 $mmb_msg = ACSMsg::get_tag_replace( $mmb_msg,
\r
174 array('{USER_COMMUNITY_NAME}'=>$mmb_info['user_community_name']));
\r
175 $ret = ACSLib::send_mail($from, $mmb_info['mail_address'],
\r
176 '', $mmb_subject, $mmb_msg, array('Sender'=>$from));
\r
177 if (Pear::IsError($ret)) {
\r
186 * ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊ󥿥°ÃÖ´¹
\r
188 * ¥á¥Ã¥»¡¼¥¸¤ËÂФ·¤Æ°Ê²¼¤Î¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤òÃÖ´¹¤·¤Þ¤¹¡£
\r
189 * {SYSTEM_BASE_URL}
\r
190 * {SYSTEM_SCRIPT_PATH}
\r
191 * {SYSTEM_MODULE_ACCESSOR}
\r
192 * {SYSTEM_ACTION_ACCESSOR}
\r
196 * @param string $community_id ¥³¥ß¥å¥Ë¥Æ¥£id
\r
197 * @param string $msg ¥á¥Ã¥»¡¼¥¸ËÜʸ
\r
198 * @return true / false
\r
200 static function get_community_tag_replace ($community_id,$msg) {
\r
202 $community_info = array();
\r
205 $system_group = ACSMsg::get_mst('system_config_group','D01');
\r
207 $community_info['system_base_url'] = ACSSystemConfig::get_keyword_value(
\r
208 $system_group, 'SYSTEM_BASE_URL');
\r
209 $community_info['system_base_login_url'] = ACSSystemConfig::get_keyword_value(
\r
210 $system_group, 'SYSTEM_BASE_LOGIN_URL');
\r
212 // ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊó¤Î¼èÆÀ
\r
213 $community_row =& ACSCommunity::get_community_row($community_id);
\r
214 $community_info['community_name'] = $community_row['community_name'];
\r
216 // ¥³¥ß¥å¥Ë¥Æ¥£¡¼URL
\r
217 $community_info['community_url'] =
\r
218 $community_info['system_base_login_url'] . SCRIPT_PATH .
\r
219 "?" . MODULE_ACCESSOR . "=Community" .
\r
220 "&" . ACTION_ACCESSOR . "=Index" .
\r
221 "&community_id=".$community_id;
\r
223 return ACSMsg::get_tag_replace($msg, array(
\r
224 '{SYSTEM_BASE_URL}' => $community_info['system_base_url'],
\r
225 '{SYSTEM_SCRIPT_PATH}' =>
\r
226 $community_info['system_base_login_url'] . SCRIPT_PATH,
\r
227 '{SYSTEM_MODULE_ACCESSOR}' => MODULE_ACCESSOR,
\r
228 '{SYSTEM_ACTION_ACCESSOR}' => ACTION_ACCESSOR,
\r
229 '{COMMUNITY_ID}' => $community_id,
\r
230 '{COMMUNITY_NAME}' => $community_info['community_name'],
\r
231 '{COMMUNITY_URL}' => $community_info['community_url']
\r
236 * ML¤Ø¤Î¥Õ¥¡¥¤¥ë¥¢¥Ã¥×¥í¡¼¥ÉÄÌÃΥ᡼¥ëÁ÷¿®
\r
238 * ³Æ¥æ¡¼¥¶¤Î¸À¸ì¤ËÂбþ¤·¤Æ¥á¡¼¥ë¤òÁ÷¿®¤¹¤ë
\r
240 * @return true / false
\r
242 static function send_fileupload_mail($community_id, &$user_info, &$folder, &$file) {
\r
244 // ¥Õ¥¡¥¤¥ë¾ÜºÙ²èÌÌURL
\r
245 $file_detail_url = "{SYSTEM_SCRIPT_PATH}" .
\r
246 "?{SYSTEM_MODULE_ACCESSOR}=Community" .
\r
247 "&{SYSTEM_ACTION_ACCESSOR}=FileDetail" .
\r
248 "&community_id={$community_id}" .
\r
249 "&folder_id={$folder->folder_id}" .
\r
250 "&file_id={$file->file_id}";
\r
252 // ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊó¤Î¼èÆÀ
\r
253 $community_row =& ACSCommunity::get_community_row($community_id);
\r
255 // ³Æ¸À¸ìÍѤΥá¥Ã¥»¡¼¥¸¤ò½àÈ÷
\r
257 $org_lang = ACSMsg::get_lang();
\r
258 foreach (ACSMsg::get_lang_list_array() as $lang => $lang_disp) {
\r
260 ACSMsg::set_lang($lang);
\r
261 $msgs[$lang] = ACSMsg::get_serial_msg('lib',basename(__FILE__),'UPL%03d');
\r
262 $msgs[$lang] = ACSMsg::get_tag_replace($msgs[$lang], array(
\r
263 '{COMMUNITY_NAME}' => $community_row['community_name'],
\r
264 '{USER_NAME}' => $user_info['user_name'],
\r
265 '{USER_COMMUNITY_NAME}' => $user_info['community_name'],
\r
266 '{FILE_DETAIL_URL}' => $file_detail_url,
\r
267 '{UPLOAD_FILE_NAME}' => $file->display_file_name
\r
270 ACSMsg::set_lang($org_lang);
\r
272 // ¥·¥¹¥Æ¥à¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¼èÆÀ
\r
273 $system_mail_addr = ACSSystemConfig::get_keyword_value(
\r
274 ACSMsg::get_mst('system_config_group','D01'), 'SYSTEM_MAIL_ADDR');
\r
277 $subject = ACSMsg::get_mdmsg(__FILE__,'M001');
\r
280 return ACSCommunityMail::send_community_mail(
\r
281 $community_id, $system_mail_addr, $subject, $msgs);
\r
285 * ¤Ø¤Î¥³¥ß¥å¥Ë¥Æ¥£¥Õ¥©¥ë¥À¥×¥Ã¥ÈÄÌÃΥ᡼¥ë
\r
287 * ³Æ¥æ¡¼¥¶¤Î¸À¸ì¤ËÂбþ¤·¤Æ¥á¡¼¥ë¤òÁ÷¿®¤¹¤ë
\r
289 * @return true / false
\r
291 static function send_putfolder_mail(&$user_info, &$folder, $community_id) {
\r
293 // ¥Õ¥©¥ë¥À¡¦¥Õ¥¡¥¤¥ë°ìÍ÷²èÌÌURL
\r
294 $folder_list_url = "{SYSTEM_SCRIPT_PATH}" .
\r
295 "?{SYSTEM_MODULE_ACCESSOR}=Community" .
\r
296 "&{SYSTEM_ACTION_ACCESSOR}=Folder" .
\r
297 "&community_id=" . $community_id .
\r
298 "&folder_id=" . $folder['folder_id'];
\r
300 // ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊó¤Î¼èÆÀ
\r
301 $community_row =& ACSCommunity::get_community_row($community_id);
\r
303 // ³Æ¸À¸ìÍѤΥá¥Ã¥»¡¼¥¸¤ò½àÈ÷
\r
305 $org_lang = ACSMsg::get_lang();
\r
306 foreach (ACSMsg::get_lang_list_array() as $lang => $lang_disp) {
\r
308 ACSMsg::set_lang($lang);
\r
309 $msgs[$lang] = ACSMsg::get_serial_msg('lib',basename(__FILE__),'PUT%03d');
\r
310 $msgs[$lang] = ACSMsg::get_tag_replace($msgs[$lang], array(
\r
311 '{USER_NAME}' => $user_info['user_name'],
\r
312 '{USER_COMMUNITY_NAME}' => $user_info['community_name'],
\r
313 '{FOLDER_LIST_URL}' => $folder_list_url,
\r
314 '{PUT_FOLDER_NAME}' => $folder['folder_name']
\r
318 $subjects[$lang] = ACSMsg::get_mdmsg(__FILE__, 'M005');
\r
320 ACSMsg::set_lang($org_lang);
\r
322 // ¥·¥¹¥Æ¥à¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¼èÆÀ
\r
323 $system_mail_addr = ACSSystemConfig::get_keyword_value(
\r
324 ACSMsg::get_mst('system_config_group','D01'), 'SYSTEM_MAIL_ADDR');
\r
327 //$subject = ACSMsg::get_mdmsg(__FILE__,'M005');
\r
330 return ACSCommunityMail::send_community_mail(
\r
331 $community_id, $system_mail_addr, $subjects, $msgs);
\r
335 * ¥¹¥±¥¸¥å¡¼¥ëÄÌÃΥ᡼¥ë¤ÎÁ÷¿®
\r
337 * ³Æ¥æ¡¼¥¶¤Î¸À¸ì¤ËÂбþ¤·¤Æ¥¹¥±¥¸¥å¡¼¥ë´ØÏ¢¤Î<br>
\r
338 * ÄÌÃΥ᡼¥ë¤òÁ÷¿®¤¹¤ë
\r
340 * @param object $schedule ¥¹¥±¥¸¥å¡¼¥ë¥¤¥ó¥¹¥¿¥ó¥¹(ACSSchedule)
\r
341 * @param string $serial_msg_key_fmg ¥·¥ê¥¢¥ë¥á¥Ã¥»¡¼¥¸¼èÆÀÍÑ¥Õ¥©¡¼¥Þ¥Ã¥È(Îã:"RMD%03d")
\r
342 * @param string $subject_msg_key ·ï̾¥á¥Ã¥»¡¼¥¸¼èÆÀÍÑ¥¡¼(Îã:"M001")
\r
343 * @param array $additional_tags Äɲ乤ëÃÖ´¹¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À(̤»ØÄê¤â²Ä)
\r
344 * @param array $additional_message_tags Äɲ乤ëÃÖ´¹¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À(¥á¥Ã¥»¡¼¥¸id»ØÄê)
\r
345 * (̤»ØÄê¤â²Ä) ¥á¡¼¥ë¸À¸ì¤ËÂбþ¤·¤ÆÃÖ´¹¤µ¤ì¤Þ¤¹
\r
346 * @return boolean true/false
\r
348 static function send_schedule_announce_mail (
\r
350 $serial_msg_key_fmg,
\r
352 $additional_tags = "",
\r
353 $additional_message_tags = "") {
\r
355 // ¥¹¥±¥¸¥å¡¼¥ë£Õ£Ò£Ì
\r
356 $schedule_url = "{SYSTEM_SCRIPT_PATH}" .
\r
357 "?{SYSTEM_MODULE_ACCESSOR}=Community" .
\r
358 "&{SYSTEM_ACTION_ACCESSOR}=AnswerSchedule" .
\r
359 "&community_id={$schedule->community_id}" .
\r
360 "&schedule_id={$schedule->schedule_id}";
\r
362 $user_community_row =& ACSUser::get_user_profile_row($schedule->user_community_id);
\r
364 // ¥·¥¹¥Æ¥à¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¼èÆÀ
\r
365 $system_mail_addr = ACSSystemConfig::get_keyword_value(
\r
366 ACSMsg::get_mst('system_config_group','D01'), 'SYSTEM_MAIL_ADDR');
\r
368 // ³Æ¸À¸ìÍѤΥá¥Ã¥»¡¼¥¸¤ò½àÈ÷
\r
370 $subjects = array();
\r
371 $org_lang = ACSMsg::get_lang();
\r
372 foreach (ACSMsg::get_lang_list_array() as $lang => $lang_disp) {
\r
374 ACSMsg::set_lang($lang);
\r
376 $tags_array = array(
\r
377 '{USER_NAME}' => $user_community_row['user_name'],
\r
378 '{USER_COMMUNITY_NAME}' => $user_community_row['community_name'],
\r
379 '{SCHEDULE_NAME}' => $schedule->schedule_name,
\r
380 '{SCHEDULE_DETAIL}' => $schedule->schedule_detail,
\r
381 '{SCHEDULE_CLOSING_DATETIME}' => ACSLib::convert_pg_date_to_str(
\r
382 $schedule->schedule_closing_datetime),
\r
383 '{SCHEDULE_URL}' => $schedule_url
\r
386 if (is_array($additional_tags)) {
\r
387 $tags_array = array_merge($tags_array, $additional_tags);
\r
390 if (is_array($additional_message_tags)) {
\r
391 $msg_array = array();
\r
392 foreach ($additional_message_tags as $tag => $msg_key) {
\r
393 $msg_array[$tag] = ACSMsg::get_mdmsg(__FILE__, $msg_key);
\r
395 $tags_array = array_merge($tags_array, $msg_array);
\r
398 $msgs[$lang] = ACSMsg::get_serial_msg(
\r
399 'lib',basename(__FILE__), $serial_msg_key_fmg);
\r
400 $msgs[$lang] = ACSMsg::get_tag_replace($msgs[$lang], $tags_array);
\r
403 $subjects[$lang] = ACSMsg::get_mdmsg(__FILE__, $subject_msg_key);
\r
406 ACSMsg::set_lang($org_lang);
\r
408 // ¥á¡¼¥ë¤ÎÁ÷¿®(Á´¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥Ð)
\r
409 return ACSCommunityMail::send_community_mail(
\r
410 $schedule->community_id, $system_mail_addr, $subjects, $msgs);
\r