diff options
author | Chris Case <kahotep@bunda.dreamhost.com> | 2011-02-19 05:33:42 -0800 |
---|---|---|
committer | Chris Case <kahotep@bunda.dreamhost.com> | 2011-02-19 05:33:42 -0800 |
commit | dba7874131e7538db4da5da0e0395a47cdcb0ee5 (patch) | |
tree | dc20e2fbe3b68b10066ba4826530bc95186f3797 | |
parent | 9e654f7e5777458941e93b4bfa6de2a11d4374f9 (diff) | |
download | volse-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.php | 61 |
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 |