X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=webapp%2Flib%2Fclass%2FACSCommunityMail.class.php;fp=webapp%2Flib%2Fclass%2FACSCommunityMail.class.php;h=0ebc57c209e0d5efa932fd0b53f0316fa0e94590;hb=5b9f238c81808ea11bff12536ee867e3c3b7fc07;hp=0000000000000000000000000000000000000000;hpb=8f9121013e0e238a039705ba092ca08b5234d632;p=acs%2Facs.git diff --git a/webapp/lib/class/ACSCommunityMail.class.php b/webapp/lib/class/ACSCommunityMail.class.php new file mode 100644 index 0000000..0ebc57c --- /dev/null +++ b/webapp/lib/class/ACSCommunityMail.class.php @@ -0,0 +1,414 @@ + $bbs_system_mailaddr, + 'Bcc' => $bcc, + 'Return-Path' => $ml_address, + 'Reply-to' => $ml_address, + // ¸«¤»¤«¤±¤ÎTo:¤Ë¤ÏML¥¢¥É¥ì¥¹¤òÀßÄê + 'To' => $ml_address)); + } + + /** + * ¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥Ð¤Ø¤Î¥á¡¼¥ëÁ÷¿®(¸ÄÊÌÇÛ¿®) + * + * ¢¨³Æ¥æ¡¼¥¶¤Î¸À¸ìÀßÄê¤Ë½¾¤Ã¤Æ¥¿¥°¤ò¥ê¥×¥ì¡¼¥¹¤·¤Þ¤¹¡£ + * ¢¨¥·¥¹¥Æ¥àÀßÄê¤Î£Ó£Í£Ô£Ð¤ÇÁ÷¿®¤·¤Þ¤¹¡£ + * ¥á¥Ã¥»¡¼¥¸¤ËÂФ·¤Æ°Ê²¼¤Î¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤òÃÖ´¹¤·¤Þ¤¹¡£ + * {USER_COMMUNITY_NAME} + * {SYSTEM_BASE_URL} + * {SYSTEM_SCRIPT_PATH} + * {SYSTEM_MODULE_ACCESSOR} + * {SYSTEM_ACTION_ACCESSOR} + * {COMMUNITY_ID} + * {COMMUNITY_NAME} + * + * @param string $community_id ¥³¥ß¥å¥Ë¥Æ¥£id + * @param string $from Á÷¿®¼Ô + * @param mixed $subject ÇÛÎó¤Î¾ì¹ç¡§·ï̾(array([lang] => [·ï̾])) + * ʸ»úÎó¤Î¾ì¹ç¡¢Á´¤Æ¤Î¸À¸ì¤ÇƱ°ì¤Î·ï̾ + * @param mixed $msg ÇÛÎó¤Î¾ì¹ç¡§¥á¥Ã¥»¡¼¥¸ËÜʸ(array([lang] => [ËÜʸ])) + * ʸ»úÎó¤Î¾ì¹ç¡¢Á´¤Æ¤Î¸À¸ì¤ÇƱ°ì¤Î¥á¥Ã¥»¡¼¥¸ËÜʸ + * @param string $mmb_id_array Âоݥ桼¥¶¥³¥ß¥å¥Ë¥Æ¥£idÇÛÎó(̤»ØÄê»þ¤ÏÁ´°÷) + * @return mixed true...Àµ¾ï/PearError ¥ª¥Ö¥¸¥§¥¯¥È...°Û¾ï + */ + static function send_community_mail ($community_id,$from,$subject,$msg,$mmb_id_array='') { + + // ¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥ÐÁ´°÷¤Î¾ðÊó¤ò¼èÆÀ + $mmb_info_rows =& ACSCommunity::get_community_member_mail_address_row_array( + $community_id); + + // ¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë¥æ¡¼¥¶¥³¥ß¥å¥Ë¥Æ¥£id¤ò»ÈÍѤ·¤¿ÇÛÎó¤òÀ¸À® + $mmb_info_array = array(); + $is_all = $mmb_id_array == '' ? TRUE : FALSE; + foreach ($mmb_info_rows as $mmb_info) { + $mmb_info_array[$mmb_info['user_community_id']] = $mmb_info; + if ($is_all) { + $mmb_id_array[] = $mmb_info['user_community_id']; + } + } + + // ¸À¸ì¼ïÎàÊ̤˥·¥¹¥Æ¥à´ØÏ¢¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤ÎÃÖ´¹ + $msg_lang = array(); + $lang_list =& ACSMsg::get_lang_list_array(); + foreach ($lang_list as $lang => $lang_disp) { + $msg_lang[$lang] = ACSCommunityMail::get_community_tag_replace( + $community_id, (is_array($msg) ? $msg[$lang] : $msg)); + } + + // Âоݥ桼¥¶¤Ë¥á¡¼¥ë¤òÁ÷¿® + if (is_array($mmb_id_array)) { + + foreach ($mmb_id_array as $mmb_id) { + + $mmb_info =& $mmb_info_array[$mmb_id]; + + $lang = $mmb_info['mail_lang'] == '' ? + ACS_DEFAULT_LANG : $mmb_info['mail_lang']; + + $mmb_msg = $msg_lang[$lang]; + + $mmb_subject = is_array($subject) ? $subject[$lang] : $subject; + + // ̾Á°¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤ÎÃÖ´¹ + $mmb_msg = ACSMsg::get_tag_replace( $mmb_msg, + array('{USER_COMMUNITY_NAME}'=>$mmb_info['user_community_name'])); + $ret = ACSLib::send_mail($from, $mmb_info['mail_address'], + '', $mmb_subject, $mmb_msg, array('Sender'=>$from)); + if (Pear::IsError($ret)) { + return $ret; + } + } + } + return true; + } + + /** + * ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊ󥿥°ÃÖ´¹ + * + * ¥á¥Ã¥»¡¼¥¸¤ËÂФ·¤Æ°Ê²¼¤Î¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤òÃÖ´¹¤·¤Þ¤¹¡£ + * {SYSTEM_BASE_URL} + * {SYSTEM_SCRIPT_PATH} + * {SYSTEM_MODULE_ACCESSOR} + * {SYSTEM_ACTION_ACCESSOR} + * {COMMUNITY_ID} + * {COMMUNITY_NAME} + * + * @param string $community_id ¥³¥ß¥å¥Ë¥Æ¥£id + * @param string $msg ¥á¥Ã¥»¡¼¥¸ËÜʸ + * @return true / false + */ + static function get_community_tag_replace ($community_id,$msg) { + + $community_info = array(); + + // ¥·¥¹¥Æ¥àURL + $system_group = ACSMsg::get_mst('system_config_group','D01'); + + $community_info['system_base_url'] = ACSSystemConfig::get_keyword_value( + $system_group, 'SYSTEM_BASE_URL'); + $community_info['system_base_login_url'] = ACSSystemConfig::get_keyword_value( + $system_group, 'SYSTEM_BASE_LOGIN_URL'); + + // ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊó¤Î¼èÆÀ + $community_row =& ACSCommunity::get_community_row($community_id); + $community_info['community_name'] = $community_row['community_name']; + + // ¥³¥ß¥å¥Ë¥Æ¥£¡¼URL + $community_info['community_url'] = + $community_info['system_base_login_url'] . SCRIPT_PATH . + "?" . MODULE_ACCESSOR . "=Community" . + "&" . ACTION_ACCESSOR . "=Index" . + "&community_id=".$community_id; + + return ACSMsg::get_tag_replace($msg, array( + '{SYSTEM_BASE_URL}' => $community_info['system_base_url'], + '{SYSTEM_SCRIPT_PATH}' => + $community_info['system_base_login_url'] . SCRIPT_PATH, + '{SYSTEM_MODULE_ACCESSOR}' => MODULE_ACCESSOR, + '{SYSTEM_ACTION_ACCESSOR}' => ACTION_ACCESSOR, + '{COMMUNITY_ID}' => $community_id, + '{COMMUNITY_NAME}' => $community_info['community_name'], + '{COMMUNITY_URL}' => $community_info['community_url'] + )); + } + + /** + * ML¤Ø¤Î¥Õ¥¡¥¤¥ë¥¢¥Ã¥×¥í¡¼¥ÉÄÌÃΥ᡼¥ëÁ÷¿® + * + * ³Æ¥æ¡¼¥¶¤Î¸À¸ì¤ËÂбþ¤·¤Æ¥á¡¼¥ë¤òÁ÷¿®¤¹¤ë + * + * @return true / false + */ + static function send_fileupload_mail($community_id, &$user_info, &$folder, &$file) { + + // ¥Õ¥¡¥¤¥ë¾ÜºÙ²èÌÌURL + $file_detail_url = "{SYSTEM_SCRIPT_PATH}" . + "?{SYSTEM_MODULE_ACCESSOR}=Community" . + "&{SYSTEM_ACTION_ACCESSOR}=FileDetail" . + "&community_id={$community_id}" . + "&folder_id={$folder->folder_id}" . + "&file_id={$file->file_id}"; + + // ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊó¤Î¼èÆÀ + $community_row =& ACSCommunity::get_community_row($community_id); + + // ³Æ¸À¸ìÍѤΥá¥Ã¥»¡¼¥¸¤ò½àÈ÷ + $msgs = array(); + $org_lang = ACSMsg::get_lang(); + foreach (ACSMsg::get_lang_list_array() as $lang => $lang_disp) { + + ACSMsg::set_lang($lang); + $msgs[$lang] = ACSMsg::get_serial_msg('lib',basename(__FILE__),'UPL%03d'); + $msgs[$lang] = ACSMsg::get_tag_replace($msgs[$lang], array( + '{COMMUNITY_NAME}' => $community_row['community_name'], + '{USER_NAME}' => $user_info['user_name'], + '{USER_COMMUNITY_NAME}' => $user_info['community_name'], + '{FILE_DETAIL_URL}' => $file_detail_url, + '{UPLOAD_FILE_NAME}' => $file->display_file_name + )); + } + ACSMsg::set_lang($org_lang); + + // ¥·¥¹¥Æ¥à¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¼èÆÀ + $system_mail_addr = ACSSystemConfig::get_keyword_value( + ACSMsg::get_mst('system_config_group','D01'), 'SYSTEM_MAIL_ADDR'); + + // ·ï̾ + $subject = ACSMsg::get_mdmsg(__FILE__,'M001'); + + // ¥á¡¼¥ëÁ÷¿® + return ACSCommunityMail::send_community_mail( + $community_id, $system_mail_addr, $subject, $msgs); + } + + /** + * ¤Ø¤Î¥³¥ß¥å¥Ë¥Æ¥£¥Õ¥©¥ë¥À¥×¥Ã¥ÈÄÌÃΥ᡼¥ë + * + * ³Æ¥æ¡¼¥¶¤Î¸À¸ì¤ËÂбþ¤·¤Æ¥á¡¼¥ë¤òÁ÷¿®¤¹¤ë + * + * @return true / false + */ + static function send_putfolder_mail(&$user_info, &$folder, $community_id) { + + // ¥Õ¥©¥ë¥À¡¦¥Õ¥¡¥¤¥ë°ìÍ÷²èÌÌURL + $folder_list_url = "{SYSTEM_SCRIPT_PATH}" . + "?{SYSTEM_MODULE_ACCESSOR}=Community" . + "&{SYSTEM_ACTION_ACCESSOR}=Folder" . + "&community_id=" . $community_id . + "&folder_id=" . $folder['folder_id']; + + // ¥³¥ß¥å¥Ë¥Æ¥£¾ðÊó¤Î¼èÆÀ + $community_row =& ACSCommunity::get_community_row($community_id); + + // ³Æ¸À¸ìÍѤΥá¥Ã¥»¡¼¥¸¤ò½àÈ÷ + $msgs = array(); + $org_lang = ACSMsg::get_lang(); + foreach (ACSMsg::get_lang_list_array() as $lang => $lang_disp) { + + ACSMsg::set_lang($lang); + $msgs[$lang] = ACSMsg::get_serial_msg('lib',basename(__FILE__),'PUT%03d'); + $msgs[$lang] = ACSMsg::get_tag_replace($msgs[$lang], array( + '{USER_NAME}' => $user_info['user_name'], + '{USER_COMMUNITY_NAME}' => $user_info['community_name'], + '{FOLDER_LIST_URL}' => $folder_list_url, + '{PUT_FOLDER_NAME}' => $folder['folder_name'] + )); + + // subject¤ÎÊÔ½¸ + $subjects[$lang] = ACSMsg::get_mdmsg(__FILE__, 'M005'); + } + ACSMsg::set_lang($org_lang); + + // ¥·¥¹¥Æ¥à¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¼èÆÀ + $system_mail_addr = ACSSystemConfig::get_keyword_value( + ACSMsg::get_mst('system_config_group','D01'), 'SYSTEM_MAIL_ADDR'); + + // ·ï̾ + //$subject = ACSMsg::get_mdmsg(__FILE__,'M005'); + + // ¥á¡¼¥ëÁ÷¿® + return ACSCommunityMail::send_community_mail( + $community_id, $system_mail_addr, $subjects, $msgs); + } + + /** + * ¥¹¥±¥¸¥å¡¼¥ëÄÌÃΥ᡼¥ë¤ÎÁ÷¿® + * + * ³Æ¥æ¡¼¥¶¤Î¸À¸ì¤ËÂбþ¤·¤Æ¥¹¥±¥¸¥å¡¼¥ë´ØÏ¢¤Î
+ * ÄÌÃΥ᡼¥ë¤òÁ÷¿®¤¹¤ë + * + * @param object $schedule ¥¹¥±¥¸¥å¡¼¥ë¥¤¥ó¥¹¥¿¥ó¥¹(ACSSchedule) + * @param string $serial_msg_key_fmg ¥·¥ê¥¢¥ë¥á¥Ã¥»¡¼¥¸¼èÆÀÍÑ¥Õ¥©¡¼¥Þ¥Ã¥È(Îã:"RMD%03d") + * @param string $subject_msg_key ·ï̾¥á¥Ã¥»¡¼¥¸¼èÆÀÍÑ¥­¡¼(Îã:"M001") + * @param array $additional_tags Äɲ乤ëÃÖ´¹¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À(̤»ØÄê¤â²Ä) + * @param array $additional_message_tags Äɲ乤ëÃÖ´¹¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À(¥á¥Ã¥»¡¼¥¸id»ØÄê) + * (̤»ØÄê¤â²Ä) ¥á¡¼¥ë¸À¸ì¤ËÂбþ¤·¤ÆÃÖ´¹¤µ¤ì¤Þ¤¹ + * @return boolean true/false + */ + static function send_schedule_announce_mail ( + &$schedule, + $serial_msg_key_fmg, + $subject_msg_key, + $additional_tags = "", + $additional_message_tags = "") { + + // ¥¹¥±¥¸¥å¡¼¥ë£Õ£Ò£Ì + $schedule_url = "{SYSTEM_SCRIPT_PATH}" . + "?{SYSTEM_MODULE_ACCESSOR}=Community" . + "&{SYSTEM_ACTION_ACCESSOR}=AnswerSchedule" . + "&community_id={$schedule->community_id}" . + "&schedule_id={$schedule->schedule_id}"; + + $user_community_row =& ACSUser::get_user_profile_row($schedule->user_community_id); + + // ¥·¥¹¥Æ¥à¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¼èÆÀ + $system_mail_addr = ACSSystemConfig::get_keyword_value( + ACSMsg::get_mst('system_config_group','D01'), 'SYSTEM_MAIL_ADDR'); + + // ³Æ¸À¸ìÍѤΥá¥Ã¥»¡¼¥¸¤ò½àÈ÷ + $msgs = array(); + $subjects = array(); + $org_lang = ACSMsg::get_lang(); + foreach (ACSMsg::get_lang_list_array() as $lang => $lang_disp) { + + ACSMsg::set_lang($lang); + + $tags_array = array( + '{USER_NAME}' => $user_community_row['user_name'], + '{USER_COMMUNITY_NAME}' => $user_community_row['community_name'], + '{SCHEDULE_NAME}' => $schedule->schedule_name, + '{SCHEDULE_DETAIL}' => $schedule->schedule_detail, + '{SCHEDULE_CLOSING_DATETIME}' => ACSLib::convert_pg_date_to_str( + $schedule->schedule_closing_datetime), + '{SCHEDULE_URL}' => $schedule_url + ); + + if (is_array($additional_tags)) { + $tags_array = array_merge($tags_array, $additional_tags); + } + + if (is_array($additional_message_tags)) { + $msg_array = array(); + foreach ($additional_message_tags as $tag => $msg_key) { + $msg_array[$tag] = ACSMsg::get_mdmsg(__FILE__, $msg_key); + } + $tags_array = array_merge($tags_array, $msg_array); + } + + $msgs[$lang] = ACSMsg::get_serial_msg( + 'lib',basename(__FILE__), $serial_msg_key_fmg); + $msgs[$lang] = ACSMsg::get_tag_replace($msgs[$lang], $tags_array); + + // subject¤ÎÊÔ½¸ + $subjects[$lang] = ACSMsg::get_mdmsg(__FILE__, $subject_msg_key); + + } + ACSMsg::set_lang($org_lang); + + // ¥á¡¼¥ë¤ÎÁ÷¿®(Á´¥³¥ß¥å¥Ë¥Æ¥£¥á¥ó¥Ð) + return ACSCommunityMail::send_community_mail( + $schedule->community_id, $system_mail_addr, $subjects, $msgs); + } + +} +?>