]> git.mxchange.org Git - friendica.git/blobdiff - include/EmailNotification.php
added reusable EmailNotification library to facilitate more efficient maintenance...
[friendica.git] / include / EmailNotification.php
diff --git a/include/EmailNotification.php b/include/EmailNotification.php
new file mode 100644 (file)
index 0000000..209d547
--- /dev/null
@@ -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