0){ return false;} } $contact_data = \SQL\CONTACT_SELECT::Q1(array($email)); $email_data = \SQL\EMAIL_SELECT::Q1(array($email_id)); $template_text = \SQL\EMAIL_TEMPLATE_SELECT::Q1(array($email_data['template_text'])); $template_html = \SQL\EMAIL_TEMPLATE_SELECT::Q1(array($email_data['template_html'])); $placeholders_qq= \SQL\EMAIL_PLACEHOLDER_SELECT_EMAIL::QQ(array($email_id)); $images_qq = \SQL\EMAIL_IMAGE_SELECT_EMAIL::QQ(array($email_id)); $smtp = null; switch($email_data['account']){ case self::EMAIL_ACCOUNT_PROTOTYPING: $smtp = \SYSTEM\CONFIG\config::get(\config_ids::DEMOCRACY_EMAIL_PROTOTYPING); break; case self::EMAIL_ACCOUNT_CROWDFUNDING: $smtp = \SYSTEM\CONFIG\config::get(\config_ids::DEMOCRACY_EMAIL_CROWDFUNDING); break; // contact default: $smtp = \SYSTEM\CONFIG\config::get(\config_ids::DEMOCRACY_EMAIL_CONTACT); } $replacements = []; $replacements['emoji_mobile'] = '📱'; foreach($data as $k => $v){ $replacements['data_'.$k] = $v;} while($placeholder = $placeholders_qq->next()){ switch($placeholder['type']){ case self::EMAIL_PLACEHOLDER_TYPE_TEXT: $value = json_decode($placeholder['data'],true)['value']; $value = str_replace('\\n', "\n", $value); $replacements[$placeholder['name']] = $value; break; case self::EMAIL_PLACEHOLDER_TYPE_SWITCH: $data = json_decode($placeholder['data'],true); $d = null; switch($data['table']){ case 'contact': $d = $contact_data[$data['field']]; break; } $value = $data['default']; foreach($data['values'] as $k => $v){ if($d == $k){ $value = $v;} } $replacements[$placeholder['name']] = $value; break; case self::EMAIL_PLACEHOLDER_TYPE_NAME: $value = json_decode($placeholder['data'],true)['default']; if($contact_data['name_first'] || $contact_data['name_last']){ $value = trim($contact_data['name_first'].' '.$contact_data['name_last']); } $replacements[$placeholder['name']] = $value; break; } } if($list){ $replacements['unsubscribe_link'] = \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL). '#!unsubscribe;token.'. \SYSTEM\TOKEN\token::request( 'token_democracy_unsubscribe', array( 'email' => $email,'list' => $list), true); } $to = $email; $from = \SYSTEM\PAGE\replace::replace($email_data['sender'],$replacements); $subject = \SYSTEM\PAGE\replace::replace($email_data['subject'],$replacements); $text = \SYSTEM\PAGE\replace::replace($template_text['value'], $replacements); $html = \SYSTEM\PAGE\replace::replace($template_html['value'], $replacements); $images = []; while($image = $images_qq->next()){ $images[$image['name']] = [ 'file' => (new \PFILES('email/'.$image['file']))->SERVERPATH(), 'mime' => $image['mime']]; } //TODO $attachments = []; $sent = \mailcannon::send( $smtp, $from, $to, $subject, $text, $html, $images, $attachments); if($list != self::EMAIL_LIST_TEST){ \SQL\EMAIL_SENT_INSERT::QI(array($email_id,$email));} return $sent ? true : false; } public static function send_list($email_id,$list){ $list_handle = \SQL\CONTACT_EMAIL_LIST_SELECT_LIST::QA(array($email_id,$list)); foreach($list_handle as $row){ \set_time_limit(30); self::send_mail($row['email'], $email_id, $list); \sleep(1); } return \SYSTEM\LOG\JsonResult::ok(); } public static function sai_mod__SAI_saimod_mail(){ $vars = array(); return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_mail/tpl/saimod_mail.tpl'))->SERVERPATH(),$vars); } public static function sai_mod__SAI_saimod_mail_action_import_paypal(){ $account = \SYSTEM\CONFIG\config::get(\config_ids::DEMOCRACY_EMAIL_CONTACT); $connection_string = '{'.$account['imap'].'}'; $folder = 'INBOX.4 - Paypal'; $imap = imap_open ( $connection_string.$folder, $account['username'], $account['password']); $check = imap_check($imap); $result = ['count' => 0, 'new' => 0, 'mod' => 0, 'match' => 0]; $i = $check->Nmsgs; $result['count'] = $i; // Paypal while($i > 0){ $body = imap_body($imap, $i); $b64 = imap_base64($body); if($b64){ $body = $b64; } $regex_name = '/Name des Kunden:<\/th>