function aem_set_option($name, $value = FALSE) { $option = AEM_Option(); $option->{$name} = $value; $option->save(); }
/** * Repair data for send message * * @param array $args * * @return array */ function generate_postdata($args = array()) { $is_force = aem_get_option('aem_force_header', FALSE); $header = $this->process_header($args['headers']); /** * generate postFile */ $emailData = array('subject' => $args['subject'], 'text' => $args['message'], 'isImportant' => $args['isImportant'], 'auto_text' => TRUE, 'auto_html' => TRUE); //From email if (!$is_force && isset($header['from_name'])) { $emailData["from_email"] = $header['from_email']; } else { $emailData["from_email"] = AEM_Option()->get_from_email(); } $emailData["from_email"] = apply_filters('wp_mail_from', $emailData["from_email"]); //From name if (!$is_force && isset($header['from_name'])) { $emailData["from_name"] = $header['from_name']; } else { $emailData["from_name"] = AEM_Option()->get_from_name(); } $emailData["from_name"] = apply_filters('wp_mail_from_name', $emailData["from_name"]); //to $emailData['to'] = array(); if (!is_array($args['to'])) { $args['to'] = explode(',', $args['to']); } foreach ((array) $args['to'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData['to'][] = array('email' => $recipient, 'name' => $recipient_name, 'type' => 'to'); } catch (phpmailerException $e) { continue; } } //cc if (!empty($header['cc'])) { //header cc not empty if (empty($args['cc'])) { //arg cc empty, override agr cc $args['cc'] = $header['cc']; } else { //arg cc not empty if (!is_array($args['cc'])) { $args['cc'] = explode(',', $args['cc']); } //merge them $args['cc'] = array_merge($header['cc']); } } if (!empty($args['cc'])) { foreach ((array) $args['cc'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData['to'][] = array('email' => $recipient, 'name' => $recipient_name, 'type' => 'cc'); } catch (phpmailerException $e) { continue; } } } //bcc if (!empty($header['bcc'])) { //header bcc not empty if (empty($args['bcc'])) { //arg bcc empty, override agr cc $args['bcc'] = $header['bcc']; } else { //arg bcc not empty if (!is_array($args['bcc'])) { $args['bcc'] = explode(',', $args['bcc']); } //merge them $args['bcc'] = array_merge($header['bcc']); } } if (!empty($args['bcc'])) { foreach ((array) $args['bcc'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData['to'][] = array('email' => $recipient, 'name' => $recipient_name, 'type' => 'bcc'); } catch (Exception $e) { continue; } } } if (!isset($header['content_type'])) { $content_type = 'text/plain'; } else { $content_type = $header['content_type']; } $content_type = apply_filters('wp_mail_content_type', $content_type); if ($content_type == "text/html") { $emailData['html'] = $args['message']; } /** * Extras data */ $extras = array(); //Click tracking if (isset($args['isClickTracking'])) { $extras['track_clicks'] = $args['isTracking']; } else { $extras['track_clicks'] = AEM_Option()->is_click_tracking(); } //open tracking if (isset($args['isOpenTracking'])) { $extras['track_opens'] = $args['isOpenTracking']; } else { $extras['track_opens'] = AEM_Option()->is_open_tracking(); } //Domain tracking if (isset($args['isDomainTracking'])) { $extras['track_domain'] = $args['isDomainTracking']; } else { $extras['track_domain'] = aem_get_option('mandrill_domain_tracking'); } //signing domain if (isset($args['signing_domain'])) { $extras['signing_domain'] = $args['signing_domain']; } else { $extras['signing_domain'] = aem_get_option('mandrill_signing_domain'); } //tagging $extras['tags'] = explode(",", aem_get_option("mandrill_tag", "")); if (isset($args['tags'])) { if (!is_array($args['tags'])) { $args['tags'] = explode(",", $args['tags']); } $extras['tags'] = array_merge($extras['tags'], (array) $args['tags']); } //campaign id if (isset($args['subaccount'])) { $extras['subaccount'] = $args['subaccount']; } else { $extras['subaccount'] = aem_get_option("mandrill_subaccount", NULL); } //custom header if (isset($args['headers'])) { //extract header line $header_arr = explode("\r\n", $args['headers']); foreach ($header_arr as $header) { //extract header key:value $tmp = explode(':', $header); if (count($tmp) > 1) { if ($tmp[1] != NULL) { if (strtolower($tmp[0]) == 'from') { if (aem_get_option('aem_force_header')) { continue; } } $extras['headers'][$tmp[0]] = $tmp[1]; } } } } $fileData = array(); //$args['attachments'] = array(plugin_dir_path( AEM_PLUGIN_FILE )."/inc/ae/assets/img/slider.png"); if (!empty($args['attachments'])) { foreach ($args['attachments'] as $attachment) { $file_content = file_get_contents($attachment); $fileData[] = array('name' => basename($attachment), 'content' => base64_encode($file_content)); } $emailData['attachments'] = $fileData; } //combine $emailData = array_merge($emailData, $extras); $postData = apply_filters("aem_postdata", $emailData); return $postData; }
/** * Repair data for send message * * @param array $args * * @return array */ function generate_postdata($args = array()) { $is_force = aem_get_option('aem_force_header', FALSE); $header = $this->process_header($args['headers']); /** * generate postFile */ $emailData = array('to' => $args['to'], 'subject' => $args['subject'], 'text' => $args['message']); //From email if (!$is_force && isset($header['from_name'])) { $from_email = $header['from_email']; } else { $from_email = AEM_Option()->get_from_email(); } $from_email = apply_filters('wp_mail_from', $from_email); //From name if (!$is_force && isset($header['from_name'])) { $from_name = $header['from_name']; } else { $from_name = AEM_Option()->get_from_name(); } $from_name = apply_filters('wp_mail_from_name', $from_name); $emailData['from'] = sprintf('%1$s<%2$s>', $from_name, $from_email); //cc if (!empty($header['cc'])) { $header['cc'] = implode(",", $header['cc']); //header cc not empty if (empty($args['cc'])) { //arg cc empty, override agr cc $emailData['cc'] = $header['cc']; } else { //merge them $emailData['cc'] = trim($args['cc'], ',') . "," . trim($header['cc'], ','); } } //bcc if (!empty($header['bcc'])) { $header['bcc'] = implode(",", $header['bcc']); //header bcc not empty if (empty($args['bcc'])) { //arg bcc empty, override agr bcc $emailData['bcc'] = $header['bcc']; } else { //merge them $emailData['bcc'] = trim($args['bcc'], ',') . "," . trim($header['bcc'], ','); } } if (!isset($header['content_type'])) { $content_type = 'text/plain'; } else { $content_type = $header['content_type']; } $content_type = apply_filters('wp_mail_content_type', $content_type); if ($content_type == "text/html") { $emailData['html'] = $args['message']; } /** * Extras data */ $extras = array(); //Click tracking if (isset($args['isClickTracking'])) { $extras['o:tracking-clicks'] = $args['isTracking']; } else { $extras['o:tracking-clicks'] = AEM_Option()->is_click_tracking(); } //open tracking if (isset($args['isOpenTracking'])) { $extras['o:tracking-opens'] = $args['isOpenTracking']; } else { $extras['o:tracking-opens'] = AEM_Option()->is_open_tracking(); } //General tracking $extras['o:tracking'] = TRUE; //schedule time if (isset($args['deliverytime'])) { $extras['o:deliverytime'] = $args['deliverytime']; } //tagging if (isset($args['tags'])) { if (!is_array($args['tags'])) { $args['tags'] = (array) $args['tags']; } $extras['o:tag'] = $args['tags']; } else { $extras['o:tag'] = explode(",", aem_get_option("mailgun_tag", NULL)); } //campaign id if (isset($args['campaignId'])) { $extras['o:campaign'] = $args['campaignId']; } else { $extras['o:campaign'] = aem_get_option("mailgun_campaignid", NULL); } //custom header if (isset($args['headers'])) { //extract header line $header_arr = explode("\r\n", $args['headers']); foreach ($header_arr as $header) { //extract header key:value $tmp = explode(':', $header); if (count($tmp) > 1) { if ($tmp[1] != NULL) { if (strtolower($tmp[0]) == 'from') { if (aem_get_option('aem_force_header')) { continue; } } $extras['h:' . $tmp[0]] = $tmp[1]; } } } } //combine $emailData = array_merge($emailData, $extras); /** * Generate post file */ $fileData = array(); if (!empty($args['attachments'])) { $fileData = array('attachment' => $args['attachments']); } /** * combine all */ $postData = array('emailData' => $emailData, 'fileData' => $fileData); $postData = apply_filters("aem_postdata", $postData); return $postData; }
/** * Repair data for send message * * @param array $args * * @return array */ function generate_postdata($args = array()) { $emailData = new SendGrid\Email(); $is_force = aem_get_option('aem_force_header', FALSE); $header = $this->process_header($args['headers']); /** * generate postFile */ $emailData->setSubject($args['subject']); $emailData->setText($args['subject']); //From email if (!$is_force && isset($header['from_name'])) { $from_email = $header['from_email']; } else { $from_email = AEM_Option()->get_from_email(); } $from_email = apply_filters('wp_mail_from', $from_email); $emailData->setFrom($from_email); //From name if (!$is_force && isset($header['from_name'])) { $from_name = $header['from_name']; } else { $from_name = AEM_Option()->get_from_name(); } $from_name = apply_filters('wp_mail_from_name', $from_name); $emailData->setFromName($from_name); //to if (!is_array($args['to'])) { $args['to'] = explode(',', $args['to']); } foreach ((array) $args['to'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData->addTo($recipient, $recipient_name); } catch (phpmailerException $e) { continue; } } //cc if (!empty($header['cc'])) { //header cc not empty if (empty($args['cc'])) { //arg cc empty, override agr cc $args['cc'] = $header['cc']; } else { //arg cc not empty if (!is_array($args['cc'])) { $args['cc'] = explode(',', $args['cc']); } //merge them $args['cc'] = array_merge($header['cc']); } } if (!empty($args['cc'])) { foreach ((array) $args['cc'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData->addCc($recipient); } catch (phpmailerException $e) { continue; } } } //bcc if (!empty($header['bcc'])) { //header bcc not empty if (empty($args['bcc'])) { //arg bcc empty, override agr cc $args['bcc'] = $header['bcc']; } else { //arg bcc not empty if (!is_array($args['bcc'])) { $args['bcc'] = explode(',', $args['bcc']); } //merge them $args['bcc'] = array_merge($header['bcc']); } } if (!empty($args['bcc'])) { foreach ((array) $args['bcc'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData->addBcc($recipient); } catch (Exception $e) { continue; } } } if (!isset($header['content_type'])) { $content_type = 'text/plain'; } else { $content_type = $header['content_type']; } $content_type = apply_filters('wp_mail_content_type', $content_type); if ($content_type == "text/html") { $emailData->setHtml($args['message']); } //custom header if (isset($args['headers']) && is_array($args['headers'])) { //extract header line $header_arr = explode("\r\n", $args['headers']); foreach ($header_arr as $header) { //extract header key:value $tmp = explode(':', $header); if (count($tmp) > 1) { if ($tmp[1] != NULL) { if (strtolower($tmp[0]) == 'from') { if (aem_get_option('aem_force_header')) { continue; } } $emailData->addHeader($tmp[0], $tmp[1]); } } } } //$args['attachments'] = array ( plugin_dir_path( AEM_PLUGIN_FILE )."/inc/ae/assets/img/slider.png" ); if (!empty($args['attachments'])) { $emailData->setAttachments($args['attachments']); } $postData = apply_filters("aem_postdata", $emailData); return $postData; }