Merge remote branch 'zshall/master'
This commit is contained in:
commit
fe85b2b5ee
4 changed files with 173 additions and 0 deletions
119
core/email.class.php
Normal file
119
core/email.class.php
Normal file
|
@ -0,0 +1,119 @@
|
|||
<?php
|
||||
|
||||
class Email {
|
||||
/**
|
||||
* A generic email.
|
||||
*/
|
||||
var $to;
|
||||
var $subject;
|
||||
var $header;
|
||||
var $style;
|
||||
var $header_img;
|
||||
var $sitename;
|
||||
var $sitedomain;
|
||||
var $siteemail;
|
||||
var $date;
|
||||
var $body;
|
||||
var $footer;
|
||||
|
||||
public function __construct($to, $subject, $header, $body) {
|
||||
global $config;
|
||||
$this->to = $to;
|
||||
|
||||
$sub_prefix = $config->get_string("mail_sub");
|
||||
|
||||
if(!isset($sub_prefix)){
|
||||
$this->subject = $subject;
|
||||
}
|
||||
else{
|
||||
$this->subject = $sub_prefix." ".$subject;
|
||||
}
|
||||
|
||||
$this->style = $config->get_string("mail_style");
|
||||
|
||||
$this->header = html_escape($header);
|
||||
$this->header_img = $config->get_string("mail_img");
|
||||
$this->sitename = $config->get_string("site_title");
|
||||
$this->sitedomain = make_http(make_link(""));
|
||||
$this->siteemail = $config->get_string("site_email");
|
||||
$this->date = date("F j, Y");
|
||||
$this->body = $body;
|
||||
$this->footer = $config->get_string("mail_fot");
|
||||
}
|
||||
|
||||
public function send() {
|
||||
$headers = "From: ".$this->sitename." <".$this->siteemail.">\r\n";
|
||||
$headers .= "Reply-To: ".$this->siteemail."\r\n";
|
||||
$headers .= "X-Mailer: PHP/" . phpversion(). "\r\n";
|
||||
$headers .= "errors-to: ".$this->siteemail."\r\n";
|
||||
$headers .= "Date: " . date(DATE_RFC2822);
|
||||
$headers .= 'MIME-Version: 1.0' . "\r\n";
|
||||
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
|
||||
$message = '
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="'.$this->style.'" type="text/css">
|
||||
</head>
|
||||
|
||||
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" bgcolor="#EEEEEE" >
|
||||
<table width="100%" cellpadding="10" cellspacing="0" class="backgroundTable" bgcolor="#EEEEEE" >
|
||||
<tr>
|
||||
<td valign="top" align="center">
|
||||
|
||||
|
||||
<table width="550" cellpadding="0" cellspacing="0">
|
||||
|
||||
<tr>
|
||||
<td style="background-color:#FFFFFF;border-top:0px solid #333333;border-bottom:10px solid #FFFFFF;"><center><a href="'.$this->sitedomain.'"><IMG SRC="'.$this->header_img.'" alt="'.$this->sitename.'" name="Header" BORDER="0" align="center" title="'.$this->sitename.'"></a>
|
||||
</center></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<table width="550" cellpadding="20" cellspacing="0" bgcolor="#FFFFFF">
|
||||
<tr>
|
||||
<td bgcolor="#FFFFFF" valign="top" style="font-size:12px;color:#000000;line-height:150%;font-family:trebuchet ms;">
|
||||
|
||||
<p>
|
||||
<span style="font-size:20px; font-weight:bold; color:#3399FF; font-family:arial; line-height:110%;">'.$this->header.'</span><br>
|
||||
<span style="font-size:11px;font-weight:normal;color:#666666;font-style:italic;font-family:arial;">'.$this->date.'</span><br>
|
||||
</p>
|
||||
<p>'.$this->body.'</p>
|
||||
<p>'.$this->footer.'</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="background-color:#FFFFCC;border-top:10px solid #FFFFFF;" valign="top">
|
||||
<span style="font-size:10px;color:#996600;line-height:100%;font-family:verdana;">
|
||||
This email was sent to you since you are a member of <a href="'.$this->sitedomain.'">'.$this->sitename.'</a>. To change your email preferences, visit your <a href="'.make_http(make_link("preferences")).'">Account preferences</a>.<br />
|
||||
|
||||
<br />
|
||||
Contact us:<br />
|
||||
<a href="'.$this->siteemail.'">'.$this->siteemail.'</a><br /><br />
|
||||
Copyright (C) <a href="'.$this->sitedomain.'">'.$this->sitename.'</a><br />
|
||||
</span></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
';
|
||||
$sent = mail($this->to, $this->subject, $message, $headers);
|
||||
if($sent){
|
||||
log_info("mail", "Sent message '$this->subject' to '$this->to'");
|
||||
}
|
||||
else{
|
||||
log_info("mail", "Error sending message '$this->subject' to '$this->to'");
|
||||
}
|
||||
|
||||
return $sent;
|
||||
}
|
||||
}
|
||||
?>
|
BIN
ext/mail/banner.png
Normal file
BIN
ext/mail/banner.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
9
ext/mail/mail.css
Normal file
9
ext/mail/mail.css
Normal file
|
@ -0,0 +1,9 @@
|
|||
.headerTop { background-color:#FFCC66; border-top:0px solid #000000; border-bottom:1px solid #FFFFFF; text-align:center; }
|
||||
.adminText { font-size:10px; color:#996600; line-height:200%; font-family:verdana; text-decoration:none; }
|
||||
.headerBar { background-color:#FFFFFF; border-top:0px solid #333333; border-bottom:10px solid #FFFFFF; }
|
||||
.title { font-size:20px; font-weight:bold; color:#CC6600; font-family:arial; line-height:110%; }
|
||||
.subTitle { font-size:11px; font-weight:normal; color:#666666; font-style:italic; font-family:arial; }
|
||||
.defaultText { font-size:12px; color:#000000; line-height:150%; font-family:trebuchet ms; }
|
||||
.footerRow { background-color:#FFFFCC; border-top:10px solid #FFFFFF; }
|
||||
.footerText { font-size:10px; color:#996600; line-height:100%; font-family:verdana; }
|
||||
a { color:#FF6600; color:#FF6600; color:#FF6600; }
|
45
ext/mail/main.php
Normal file
45
ext/mail/main.php
Normal file
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
/**
|
||||
* Name: Mail System
|
||||
* Author: Zach Hall <zach@sosguy.net>
|
||||
* Link: http://seemslegit.com
|
||||
* License: GPLv2
|
||||
* Description: Provides an interface for sending and receiving mail.
|
||||
*/
|
||||
|
||||
class Mail extends SimpleExtension {
|
||||
public function onSetupBuilding($event) {
|
||||
$sb = new SetupBlock("Mailing Options");
|
||||
$sb->add_text_option("mail_sub", "<br>Subject prefix: ");
|
||||
$sb->add_text_option("mail_img", "<br>Banner Image URL: ");
|
||||
$sb->add_text_option("mail_style", "<br>Style URL: ");
|
||||
$sb->add_longtext_option("mail_fot", "<br>Footer (Use HTML)");
|
||||
$sb->add_label("<br><i>Should measure 550x110px. Use an absolute URL</i>");
|
||||
$event->panel->add_block($sb);
|
||||
}
|
||||
|
||||
public function onInitExt($event) {
|
||||
global $config;
|
||||
$config->set_default_string("mail_sub", $config->get_string("site_title")." - ");
|
||||
$config->set_default_string("mail_img", make_http("ext/mail/banner.png"));
|
||||
$config->set_default_string("mail_style", make_http("ext/mail/mail.css"));
|
||||
$config->set_default_string("mail_fot", "<a href='".make_http(make_link())."'>".$config->get_string("site_title")."</a>");
|
||||
}
|
||||
}
|
||||
class MailTest extends SimpleExtension {
|
||||
public function onPageRequest($event) {
|
||||
if($event->page_matches("mail/test")) {
|
||||
global $page;
|
||||
$page->set_mode("data");
|
||||
echo "Alert: uncomment this page's code on /ext/mail/main.php starting on line 33, and change the email address. Make sure you're using a server with a domain, not localhost.";
|
||||
/*
|
||||
echo "Preparing to send message:<br>";
|
||||
echo "created new mail object. sending now... ";
|
||||
$email = new Email("example@localhost.com", "hello", "hello world", "this is a test message.");
|
||||
$email->send();
|
||||
echo "sent.";
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
Reference in a new issue