+++ /dev/null
-<?php
-
-use Friendica\Core\PConfig;
-
-require_once('include/email.php');
-
-class Emailer {
- /**
- * Send a multipart/alternative message with Text and HTML versions
- *
- * @param fromName name of the sender
- * @param fromEmail email fo the sender
- * @param replyTo replyTo address to direct responses
- * @param toEmail destination email address
- * @param messageSubject subject of the message
- * @param htmlVersion html version of the message
- * @param textVersion text only version of the message
- * @param additionalMailHeader additions to the smtp mail header
- * @param optional uid user id of the destination user
- */
- public static function send($params) {
-
- call_hooks('emailer_send_prepare', $params);
-
- $email_textonly = False;
- if (x($params,"uid")) {
- $email_textonly = PConfig::get($params['uid'], "system", "email_textonly");
- }
-
- $fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8');
- $messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8');
-
- // generate a mime boundary
- $mimeBoundary =rand(0,9)."-"
- .rand(100000000,999999999)."-"
- .rand(100000000,999999999)."=:"
- .rand(10000,99999);
-
- // generate a multipart/alternative message header
- $messageHeader =
- $params['additionalMailHeader'] .
- "From: $fromName <{$params['fromEmail']}>\n" .
- "Reply-To: $fromName <{$params['replyTo']}>\n" .
- "MIME-Version: 1.0\n" .
- "Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
-
- // assemble the final multipart message body with the text and html types included
- $textBody = chunk_split(base64_encode($params['textVersion']));
- $htmlBody = chunk_split(base64_encode($params['htmlVersion']));
- $multipartMessageBody =
- "--" . $mimeBoundary . "\n" . // plain text section
- "Content-Type: text/plain; charset=UTF-8\n" .
- "Content-Transfer-Encoding: base64\n\n" .
- $textBody . "\n";
-
- if (!$email_textonly && !is_null($params['htmlVersion'])){
- $multipartMessageBody .=
- "--" . $mimeBoundary . "\n" . // text/html section
- "Content-Type: text/html; charset=UTF-8\n" .
- "Content-Transfer-Encoding: base64\n\n" .
- $htmlBody . "\n";
- }
- $multipartMessageBody .=
- "--" . $mimeBoundary . "--\n"; // message ending
-
- // send the message
- $hookdata = array(
- 'to' => $params['toEmail'],
- 'subject' => $messageSubject,
- 'body' => $multipartMessageBody,
- 'headers' => $messageHeader
- );
- //echo "<pre>"; var_dump($hookdata); killme();
- call_hooks("emailer_send", $hookdata);
- $res = mail(
- $hookdata['to'], // send to address
- $hookdata['subject'], // subject
- $hookdata['body'], // message body
- $hookdata['headers'] // message headers
- );
- logger("header " . 'To: ' . $params['toEmail'] . "\n" . $messageHeader, LOGGER_DEBUG);
- logger("return value " . (($res)?"true":"false"), LOGGER_DEBUG);
- return $res;
- }
-}
<?php
-
+/**
+ * @file include/enotify.php
+ */
use Friendica\App;
use Friendica\Core\Config;
use Friendica\Core\System;
use Friendica\Database\DBM;
+use Friendica\Util\Emailer;
-require_once('include/Emailer.php');
-require_once('include/email.php');
-require_once('include/bbcode.php');
-require_once('include/html2bbcode.php');
+require_once 'include/email.php';
+require_once 'include/bbcode.php';
+require_once 'include/html2bbcode.php';
/**
* @brief Creates a notification entry and possibly sends a mail
// use the Emailer class to send the message
- return Emailer::send(array(
+ return Emailer::send(
+ array(
'uid' => $params['uid'],
'fromName' => $sender_name,
'fromEmail' => $sender_email,
'messageSubject' => $datarray['subject'],
'htmlVersion' => $email_html_body,
'textVersion' => $email_text_body,
- 'additionalMailHeader' => $datarray['headers'],
- ));
+ 'additionalMailHeader' => $datarray['headers'])
+ );
}
- return False;
+ return false;
}
/**
use Friendica\Network\Probe;
use Friendica\Object\Contact;
use Friendica\Protocol\Diaspora;
+use Friendica\Util\Emailer;
require_once 'include/crypto.php';
require_once 'include/enotify.php';
$message = '<html><body>' . $link . $html . $disclaimer . '</body></html>';
include_once 'include/html2plain.php';
$params = array (
- 'fromName' => $a->user['username'],
- 'fromEmail' => $a->user['email'],
- 'toEmail' => $addr,
- 'replyTo' => $a->user['email'],
- 'messageSubject' => $subject,
- 'htmlVersion' => $message,
- 'textVersion' => html2plain($html.$disclaimer),
+ 'fromName' => $a->user['username'],
+ 'fromEmail' => $a->user['email'],
+ 'toEmail' => $addr,
+ 'replyTo' => $a->user['email'],
+ 'messageSubject' => $subject,
+ 'htmlVersion' => $message,
+ 'textVersion' => html2plain($html.$disclaimer),
);
Emailer::send($params);
}
--- /dev/null
+<?php
+/**
+ * @file src/Util/Emailer.php
+ */
+namespace Friendica\Util;
+
+use Friendica\Core\PConfig;
+
+require_once 'include/email.php';
+
+/**
+ * @breif class to handle emailing
+ */
+class Emailer
+{
+ /**
+ * Send a multipart/alternative message with Text and HTML versions
+ *
+ * @param array $params parameters
+ * fromName name of the sender
+ * fromEmail email fo the sender
+ * replyTo replyTo address to direct responses
+ * toEmail destination email address
+ * messageSubject subject of the message
+ * htmlVersion html version of the message
+ * textVersion text only version of the message
+ * additionalMailHeader additions to the smtp mail header
+ * optional uid user id of the destination user
+ *
+ * @return object
+ */
+ public static function send($params)
+ {
+ call_hooks('emailer_send_prepare', $params);
+
+ $email_textonly = false;
+ if (x($params, "uid")) {
+ $email_textonly = PConfig::get($params['uid'], "system", "email_textonly");
+ }
+
+ $fromName = email_header_encode(html_entity_decode($params['fromName'], ENT_QUOTES, 'UTF-8'), 'UTF-8');
+ $messageSubject = email_header_encode(html_entity_decode($params['messageSubject'], ENT_QUOTES, 'UTF-8'), 'UTF-8');
+
+ // generate a mime boundary
+ $mimeBoundary =rand(0, 9)."-"
+ .rand(100000000, 999999999)."-"
+ .rand(100000000, 999999999)."=:"
+ .rand(10000, 99999);
+
+ // generate a multipart/alternative message header
+ $messageHeader = $params['additionalMailHeader'] .
+ "From: $fromName <{$params['fromEmail']}>\n" .
+ "Reply-To: $fromName <{$params['replyTo']}>\n" .
+ "MIME-Version: 1.0\n" .
+ "Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
+
+ // assemble the final multipart message body with the text and html types included
+ $textBody = chunk_split(base64_encode($params['textVersion']));
+ $htmlBody = chunk_split(base64_encode($params['htmlVersion']));
+ $multipartMessageBody = "--" . $mimeBoundary . "\n" . // plain text section
+ "Content-Type: text/plain; charset=UTF-8\n" .
+ "Content-Transfer-Encoding: base64\n\n" .
+ $textBody . "\n";
+
+ if (!$email_textonly && !is_null($params['htmlVersion'])) {
+ $multipartMessageBody .=
+ "--" . $mimeBoundary . "\n" . // text/html section
+ "Content-Type: text/html; charset=UTF-8\n" .
+ "Content-Transfer-Encoding: base64\n\n" .
+ $htmlBody . "\n";
+ }
+ $multipartMessageBody .=
+ "--" . $mimeBoundary . "--\n"; // message ending
+
+ // send the message
+ $hookdata = array(
+ 'to' => $params['toEmail'],
+ 'subject' => $messageSubject,
+ 'body' => $multipartMessageBody,
+ 'headers' => $messageHeader
+ );
+ //echo "<pre>"; var_dump($hookdata); killme();
+ call_hooks("emailer_send", $hookdata);
+ $res = mail(
+ $hookdata['to'], // send to address
+ $hookdata['subject'], // subject
+ $hookdata['body'], // message body
+ $hookdata['headers'] // message headers
+ );
+ logger("header " . 'To: ' . $params['toEmail'] . "\n" . $messageHeader, LOGGER_DEBUG);
+ logger("return value " . (($res)?"true":"false"), LOGGER_DEBUG);
+ return $res;
+ }
+}