classes/trssmailer.php - Created class TTRSS mailer which extends phpmailer and sets the default mail settings upon instantiation. Class includes quickmail function that allows for a quick email send with no extra configurion necessary.
Changes:
config.php-dist - Added the smtp port option
include/digest.php - Converted it to use the new ttrrssmailer class
include/sanity_config.php - Added the smtp port option to the sanity check
plugins/mail/init.php - Modified to use ttrssmailer class. This particular configuration shows a hybrid use case.
register.php = Modified to use ttrssmailer class.
All code was tested and functioned on my local machine.
tags
cache/htmlpurifier/*/*ser
lib/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/*/*ser
+web.config\r
--- /dev/null
+<?php\r
+/* @class ttrssMailer\r
+* @brief A TTRSS extension to the PHPMailer class\r
+* Configures default values through the __construct() function\r
+* @author Derek Murawsky\r
+* @version .1 (alpha)\r
+*\r
+*/\r
+require_once 'lib/phpmailer/class.phpmailer.php';\r
+require_once "config.php";\r
+\r
+class ttrssMailer extends PHPMailer {\r
+\r
+ //define all items that we want to override with defaults in PHPMailer\r
+ public $From = SMTP_FROM_ADDRESS;\r
+ public $FromName = SMTP_FROM_NAME;\r
+ public $CharSet = "UTF-8";\r
+ public $PluginDir = "lib/phpmailer/";\r
+ public $ContentType = "text/html"; //default email type is HTML\r
+ public $Host;\r
+ public $Port;\r
+ public $SMTPAuth=False;\r
+ public $Username;\r
+ public $Password;\r
+ \r
+ function __construct() {\r
+ $this->SetLanguage("en", "lib/phpmailer/language/");\r
+ //if SMTP_HOST is specified, use SMTP to send mail directly\r
+ if (SMTP_HOST) {\r
+ $Host = SMTP_HOST;\r
+ $Mailer = "smtp";\r
+ }\r
+ //if SMTP_PORT is specified, assign it. Otherwise default to port 25\r
+ if(SMTP_PORT){\r
+ $Port = SMTP_PORT;\r
+ }else{\r
+ $Port = "25";\r
+ }\r
+ \r
+ //if SMTP_LOGIN is specified, set credentials and enable auth\r
+ if(SMTP_LOGIN){\r
+ $SMTPAuth = true;\r
+ $Username = SMTP_LOGIN;\r
+ $Password = SMTP_PASSWORD;\r
+ }\r
+ }\r
+ /* @brief a simple mail function to send email using the defaults\r
+ * This will send an HTML email using the configured defaults\r
+ * @param $toAddress A string with the recipients email address\r
+ * @param $toName A string with the recipients name\r
+ * @param $subject A string with the emails subject\r
+ * @param $body A string containing the body of the email\r
+ */\r
+ public function quickMail ($toAddress, $toName, $subject, $body, $altbody=""){\r
+ $this->addAddress($toAddress, $toName);\r
+ $this->Subject = $subject;\r
+ $this->Body = $body;\r
+ $rc=$this->send();\r
+ return $rc;\r
+ }\r
+}\r
+\r
+?>
\ No newline at end of file
define('SMTP_HOST', '');
// SMTP Host to send outgoing mail. Blank - use system MTA.
+
+ define('SMTP_PORT','');
+ // SMTP port to sent outgoing mail. Default is 25.
define('SMTP_LOGIN', '');
define('SMTP_PASSWORD', '');
*/
function send_headlines_digests($link, $debug = false) {
- require_once 'lib/phpmailer/class.phpmailer.php';
+ require_once 'classes/ttrssmailer.php';
$user_limit = 15; // amount of users to process (e.g. emails to send out)
$limit = 1000; // maximum amount of headlines to include
if ($headlines_count > 0) {
- $mail = new PHPMailer();
+ $mail = new ttrssMailer();
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
-
- $mail->CharSet = "UTF-8";
-
- $mail->From = SMTP_FROM_ADDRESS;
- $mail->FromName = SMTP_FROM_NAME;
- $mail->AddAddress($line["email"], $line["login"]);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->SMTPAuth = SMTP_LOGIN != '';
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- $mail->IsHTML(true);
- $mail->Subject = DIGEST_SUBJECT;
- $mail->Body = $digest;
- $mail->AltBody = $digest_text;
-
- $rc = $mail->Send();
+ $rc = $mail->quickMail($line["email"], $line["login"] , DIGEST_SUBJECT, $digest, $digest_text);
if (!$rc && $debug) print "ERROR: " . $mail->ErrorInfo;
<?php # This file has been generated at: Sat Feb 9 22:34:30 MSK 2013
define('GENERATED_CONFIG_CHECK', 26);
-$requred_defines = array( 'DB_TYPE', 'DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASS', 'MYSQL_CHARSET', 'SELF_URL_PATH', 'SINGLE_USER_MODE', 'SIMPLE_UPDATE_MODE', 'PHP_EXECUTABLE', 'LOCK_DIRECTORY', 'CACHE_DIR', 'ICONS_DIR', 'ICONS_URL', 'AUTH_AUTO_CREATE', 'AUTH_AUTO_LOGIN', 'FORCE_ARTICLE_PURGE', 'PUBSUBHUBBUB_HUB', 'PUBSUBHUBBUB_ENABLED', 'SPHINX_ENABLED', 'SPHINX_INDEX', 'ENABLE_REGISTRATION', 'REG_NOTIFY_ADDRESS', 'REG_MAX_USERS', 'SESSION_COOKIE_LIFETIME', 'SESSION_EXPIRE_TIME', 'SESSION_CHECK_ADDRESS', 'SMTP_FROM_NAME', 'SMTP_FROM_ADDRESS', 'DIGEST_SUBJECT', 'SMTP_HOST', 'SMTP_LOGIN', 'SMTP_PASSWORD', 'CHECK_FOR_NEW_VERSION', 'ENABLE_GZIP_OUTPUT', 'PLUGINS', 'CONFIG_VERSION'); ?>
+$requred_defines = array( 'DB_TYPE', 'DB_HOST', 'DB_USER', 'DB_NAME', 'DB_PASS', 'MYSQL_CHARSET', 'SELF_URL_PATH', 'SINGLE_USER_MODE', 'SIMPLE_UPDATE_MODE', 'PHP_EXECUTABLE', 'LOCK_DIRECTORY', 'CACHE_DIR', 'ICONS_DIR', 'ICONS_URL', 'AUTH_AUTO_CREATE', 'AUTH_AUTO_LOGIN', 'FORCE_ARTICLE_PURGE', 'PUBSUBHUBBUB_HUB', 'PUBSUBHUBBUB_ENABLED', 'SPHINX_ENABLED', 'SPHINX_INDEX', 'ENABLE_REGISTRATION', 'REG_NOTIFY_ADDRESS', 'REG_MAX_USERS', 'SESSION_COOKIE_LIFETIME', 'SESSION_EXPIRE_TIME', 'SESSION_CHECK_ADDRESS', 'SMTP_FROM_NAME', 'SMTP_FROM_ADDRESS', 'DIGEST_SUBJECT', 'SMTP_HOST', 'SMTP_PORT', 'SMTP_LOGIN', 'SMTP_PASSWORD', 'CHECK_FOR_NEW_VERSION', 'ENABLE_GZIP_OUTPUT', 'PLUGINS', 'CONFIG_VERSION'); ?>
function sendEmail() {
$secretkey = $_REQUEST['secretkey'];
- require_once 'lib/phpmailer/class.phpmailer.php';
+ require_once 'classes/ttrssmailer.php';
$reply = array();
$_SESSION['email_secretkey'] = '';
- $destination = $_REQUEST['destination'];
- $subject = $_REQUEST['subject'];
- $content = $_REQUEST['content'];
-
$replyto = strip_tags($_SESSION['email_replyto']);
$fromname = strip_tags($_SESSION['email_fromname']);
- $mail = new PHPMailer();
-
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
-
- $mail->CharSet = "UTF-8";
+ $mail = new ttrssMailer();
$mail->From = $replyto;
$mail->FromName = $fromname;
- $mail->AddAddress($destination);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->SMTPAuth = SMTP_LOGIN != '';
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
+ $mail->AddAddress($_REQUEST['destination']);
$mail->IsHTML(false);
- $mail->Subject = $subject;
- $mail->Body = $content;
+ $mail->Subject = $_REQUEST['subject'];
+ $mail->Body = $_REQUEST['content'];
$rc = $mail->Send();
set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
get_include_path());
- require_once 'lib/phpmailer/class.phpmailer.php';
+ require_once 'classes/ttrssmailer.php';
require_once "functions.php";
require_once "sessions.php";
"\n".
"If that wasn't you, just ignore this message. Thanks.";
- $mail = new PHPMailer();
-
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
-
- $mail->CharSet = "UTF-8";
-
- $mail->From = SMTP_FROM_ADDRESS;
- $mail->FromName = SMTP_FROM_NAME;
- $mail->AddAddress($email);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- // $mail->IsHTML(true);
- $mail->Subject = "Registration information for Tiny Tiny RSS";
- $mail->Body = $reg_text;
- // $mail->AltBody = $digest_text;
-
- $rc = $mail->Send();
+ $mail = new ttrssMailer();
+ $mail->IsHTML(false);
+ $rc = $mail->quickMail($email, "", "Registration information for Tiny Tiny RSS", $reg_text, false);
if (!$rc) print_error($mail->ErrorInfo);
-
+
+ unset($reg_text);
+ unset($mail);
+ unset($rc);
$reg_text = "Hi!\n".
"\n".
"New user had registered at your Tiny Tiny RSS installation.\n".
"\n".
"Login: $login\n".
"Email: $email\n";
-
- $mail = new PHPMailer();
-
- $mail->PluginDir = "lib/phpmailer/";
- $mail->SetLanguage("en", "lib/phpmailer/language/");
-
- $mail->CharSet = "UTF-8";
-
- $mail->From = SMTP_FROM_ADDRESS;
- $mail->FromName = SMTP_FROM_NAME;
- $mail->AddAddress(REG_NOTIFY_ADDRESS);
-
- if (SMTP_HOST) {
- $mail->Host = SMTP_HOST;
- $mail->Mailer = "smtp";
- $mail->Username = SMTP_LOGIN;
- $mail->Password = SMTP_PASSWORD;
- }
-
- // $mail->IsHTML(true);
- $mail->Subject = "Registration notice for Tiny Tiny RSS";
- $mail->Body = $reg_text;
- // $mail->AltBody = $digest_text;
-
- $rc = $mail->Send();
-
+
+
+ $mail = new ttrssMailer();
+ $mail->IsHTML(false);
+ $rc = $mail->quickMail(REG_NOTIFY_ADDRESS, "", "Registration notice for Tiny Tiny RSS", $reg_text, false);
+ if (!$rc) print_error($mail->ErrorInfo);
+
print_notice(__("Account created successfully."));
print "<p><form method=\"GET\" action=\"index.php\">