aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Case <kahotep@bunda.dreamhost.com>2011-02-19 05:33:42 -0800
committerChris Case <kahotep@bunda.dreamhost.com>2011-02-19 05:33:42 -0800
commitdba7874131e7538db4da5da0e0395a47cdcb0ee5 (patch)
treedc20e2fbe3b68b10066ba4826530bc95186f3797
parent9e654f7e5777458941e93b4bfa6de2a11d4374f9 (diff)
downloadvolse-hubzilla-dba7874131e7538db4da5da0e0395a47cdcb0ee5.tar.gz
volse-hubzilla-dba7874131e7538db4da5da0e0395a47cdcb0ee5.tar.bz2
volse-hubzilla-dba7874131e7538db4da5da0e0395a47cdcb0ee5.zip
added reusable EmailNotification library to facilitate more efficient maintenance of email related code
-rw-r--r--include/EmailNotification.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/include/EmailNotification.php b/include/EmailNotification.php
new file mode 100644
index 000000000..209d5476a
--- /dev/null
+++ b/include/EmailNotification.php
@@ -0,0 +1,61 @@
+<?php
+class EmailNotification {
+ /**
+ * 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
+ */
+ static public function sendTextHtmlEmail($fromName,$fromEmail,$replyTo,$toEmail,$messageSubject,$htmlVersion,$textVersion) {
+ logger("sendTextHtmlEmail: BEGIN");
+ logger("fromName: " . $fromName);
+ logger("fromEmail: " . $fromEmail);
+ logger("replyTo: " . $replyTo);
+ logger("toEmail: " . $toEmail);
+ logger("messageSubject: " . $messageSubject);
+ //logger("htmlVersion: " . $htmlVersion);
+ //logger("textVersion: " . $textVersion);
+
+ // generate a mime boundary
+ $mimeBoundary =rand(0,9)."-"
+ .rand(10000000000,9999999999)."-"
+ .rand(10000000000,9999999999)."=:"
+ .rand(10000,99999);
+
+ // generate a multipart/alternative message header
+ $messageHeader =
+ "From: {$fromName} <{$fromEmail}>\n" .
+ "Reply-To: {$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($textVersion));
+ $htmlBody = chunk_split(base64_encode($htmlVersion));
+ $multipartMessageBody =
+ "--" . $mimeBoundary . "\n" . // plain text section
+ "Content-Type: text/plain; charset=UTF-8\n" .
+ "Content-Transfer-Encoding: base64\n\n" .
+ $textBody . "\n" .
+ "--" . $mimeBoundary . "\n" . // text/html section
+ "Content-Type: text/html; charset=UTF-8\n" .
+ "Content-Transfer-Encoding: base64\n\n" .
+ $htmlBody . "\n" .
+ "--" . $mimeBoundary . "--\n"; // message ending
+
+ // send the message
+ $res = mail(
+ $toEmail, // send to address
+ $messageSubject, // subject
+ $multipartMessageBody, // message body
+ $messageHeader // message headers
+ );
+ logger("sendTextHtmlEmail: END");
+ }
+}
+?> \ No newline at end of file